我想将不同的颜色映射应用于matplotlib表的不同列。目前,由于不同列中的极值,我可以为完整的表制作一个颜色映射,但它不适用于我。
normal = plt.Normalize(np.min(table_vals)-50, np.max(table_vals))
tab = plt.table(cellText=table_vals,
colWidths = [0.1]*3, cellLoc='center',
colLabels=columns, bbox=[-0.6,0,0.5,23], cellColours= plt.cm.RdYlGn(normal(table_vals)))
是否有指定不同列的cellColours
不同?
答案 0 :(得分:1)
我找到了解决自己问题的方法。可以通过为tablevalues
的适用范围提供离散色图来完成。它应该修改如下:
from matplotlib import colors
cmap1 = colors.ListedColormap(['b', 'g', 'r', 'c','m','y','w', 'b','g'])
bounds=[0,11,18,26,31,61,91,501,701,901]
norm = colors.BoundaryNorm(bounds, cmap1.N)
plt.table(cellText=np.int16(table_vals),
rowLabels=rows,
cellLoc='center',
cellColours= cmap1(norm(table_vals)),
loc='bottom')
因此tablevalues
中的range(0,11)
为blue
,range(11,18)
为green
,依此类推。对于每列中重叠的数据范围,需要采取另一种策略。