Python 具有不同颜色映射的matplotlib表列

Python 具有不同颜色映射的matplotlib表列,python,matplotlib,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=col

我想对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)))

有没有办法为不同的列指定不同的
cellcolors

我找到了自己问题的解决方案。可以通过为
表值的适用范围提供离散颜色映射来实现。它应该修改如下:

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')

因此
范围(0,11)
中的
表值是
蓝色
范围(11,18)
绿色
,依此类推。对于每列中重叠的数据范围,需要其他一些策略。

我找到了自己问题的解决方案。可以通过为
表值的适用范围提供离散颜色映射来实现。它应该修改如下:

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')
因此
范围(0,11)
中的
表值是
蓝色
范围(11,18)
绿色
,依此类推。对于每列中重叠的数据范围,需要其他一些策略