Я использую matplotlib для создания таблицы с 5 строками и 4 столбцами. Я хотел бы показать разницу в значениях для всех записей в каждом отдельном столбце, используя цвет. В идеале я хотел бы использовать шкалу цветовой карты, которая индивидуализирована для каждого столбца, а это означает, что шкала цветовой карты этого столбца будет иметь диапазон значений этого столбца.
Для пояснения - во втором столбце значения между 800-1200, но значения первого столбца находятся между 120-230. Когда одна и та же цветовая карта применяется ко всему диапазону таблицы, разница между значениями в первом столбце определяется намного меньше, чем если бы диапазон цветовой карты был 120-230 вместо 120-1200.
Это с matplotlib кажется невозможным, так как цветовая карта применяется ко всей таблице. То, что я хочу, может быть просто ужасной и запутанной презентацией, поэтому, если есть лучший способ показать, что я хотел бы, пожалуйста, дайте мне знать!
Это то, что я имею сейчас:
fig, ax = plt.subplots()
rows = ['%d nodes' % x for x in (10, 30, 50, 75, 100)]
columns=['TP', 'TN', 'FP', 'FN']
conf_data = np.array(
[[ 230, 847, 784, 208],
[ 156, 1240, 391, 282],
[ 146, 1212, 419, 292],
[ 130, 1148, 483, 308],
[ 122, 1173, 458, 316]]
)
normal = plt.Normalize(np.min(conf_data), np.max(conf_data))
fig.patch.set_visible(False)
ax.axis('off')
ax.axis('tight')
ax.table(cellText=conf_data,
rowLabels=rows,
colLabels=columns,
cellColours=cm.GnBu(normal(conf_data)),
loc='center',
colWidths=[0.1 for x in columns])
fig.tight_layout()
plt.show()