2013-11-13 3 views
1

Я хочу применить различные цветовые карты к различным столбцам таблицы matplotlib. В настоящее время я могу сделать один colormap для полной таблицы, это не работает для меня из-за экстремальных значений в разных столбцах.Таблицы столбцов 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

У меня есть решение моей собственной проблемы. Это может быть сделано путем предоставления дискретной цветовой карты для применимых диапазонов 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 и так далее. Для перекрытия диапазонов данных в каждом столбце требуется другая стратегия.

Смежные вопросы