matplotlib表列与不同的colormap

时间:2013-11-13 17:05:50

标签: python matplotlib

我想将不同的颜色映射应用于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不同?

1 个答案:

答案 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)bluerange(11,18)green,依此类推。对于每列中重叠的数据范围,需要采取另一种策略。