У меня есть сетевой график.
Каждый узел - это регистр, а каждое ребро - CPT.
Я использовал community.best_partition
, чтобы разбить график на четыре сообщества (отмеченные их цветами).
Чтобы лучше визуализировать общие СРТ и объемы дел в каждом сообществе, я использовал plt.subplots
и sns.heatmap
для создания четырех тепловых карт с аналогичными соответствие цветов между сообществами.
Код для создания тепловых карт:
fig, axs = plt.subplots(nrows=4, figsize=(16,8), sharex=True)
cmaps = ['Blues', 'Oranges', 'Greens', 'Reds']
comms = range(4)
for ax, cmap, comm in zip(axs, cmaps, comms):
sns.heatmap(
data=_.loc[[comm]],
ax=ax,
cmap=cmap,
annot=True,
annot_kws={
'fontsize' : 12
},
fmt='g',
cbar=False,
robust=True,
)
ax.set_ylabel('Community')
ax.set_xlabel('');
Вопрос
Есть ли способ в sns.heatmap
указать цвета по строкам (в данном случае, сообщество) без необходимости создавать 4 отдельных тепловых карты?
Вот некоторые примеры данных:
cpt 52320 52353 52310 49568 50432 52234 52317 50435 52354 52332
comm
0 NaN 3.0 NaN 1.0 1.0 NaN 2.0 2.0 NaN 3.0
1 1.0 30.0 NaN NaN NaN 1.0 NaN NaN NaN 20.0
2 NaN NaN 160.0 NaN NaN NaN NaN NaN NaN NaN
3 NaN 7.0 NaN NaN NaN NaN NaN NaN 1.0 12.0