我想绘制一个热图并为每个值指定一个颜色:
import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
data = pd.DataFrame()
data['percentile'] = pd.DataFrame({'percentile':[95] * 3 + [98] * 3 + [99] * 3})
data['time_scale'] = pd.DataFrame({'time_scale' : [1 , 7, 30 ] * 3 })
data['drivers'] = pd.DataFrame({'drivers' : [ 1 , 3 , 5 , 3 ,1 , 4 , 4 ,5 , 1] })
data = data.pivot_table(values='drivers', index='percentile', columns='time_scale').to_numpy()
im = plt.imshow(data, interpolation='none', origin='lower')如何根据驱动程序的值指定颜色?
1:灰色
2:黑色
蓝色等..。
我试过这个:
cmap = matplotlib.cm.get_cmap('Set2', 5)但我不知道怎么具体说明我想要的颜色。
谢谢。
发布于 2022-08-12 09:23:26
您可以从LinearSegmentedColormap中使用matplotlib.colors:
cmap = matplotlib.colors.LinearSegmentedColormap.from_list('', ['grey', 'black', 'blue', 'purple', 'red'])
im = plt.imshow(data, interpolation='none', origin='lower', cmap=cmap)还可以添加注释以检查颜色排列是否正确:
for i in range(len(data)):
for j in range(len(data)):
text = plt.text(j, i, data[i, j],
ha="center", va="center", color="w")

https://stackoverflow.com/questions/73331808
复制相似问题