我有两个维度为4x25
的数据表,每个表都来自不同的时间点,但具有完全相同的 meta数据,本质上是相同的列和行标题。
考虑到大量的列,我认为最好使用heatmap
使用Python
的seaborn
库来表示。然而,我需要在同一个图中包含两个表。我可以创建一个单独的热图来表示一个单独的数据表。
df = pd.DataFrame(raw_data)
ax = sns.heatmap(df)
ax.set(yticklabels=labels)
然而,我不确定如何将两个数据表合并到同一个热图中。我能想到的唯一方法是创建一个新的DataFrame
维度4x50
,然后将两个表放入其中,并使用热图绘制。但是,我需要帮助解决以下问题:
1.我不知道如何在热图的中间画一条线来区分两个表中的数据。
1.另一种解决方案是为同一热图内的2组数据应用2种不同的着色方案,而不是简单地在中间画一条线。
3条答案
按热度按时间5q4ezhmt1#
在图中并排显示两个海运热图的一种可能方法是将它们绘制到单独的子图中。可以将子图之间的空间设置为非常小(
wspace=0.01
),并将相应的颜色条和标签放置在该间隙之外。eanckbw92#
matplotlib/seaborn库最好的部分是,所有内容都在同一个图中绘制,直到你清除它。你可以使用
sns.heatmap
中的mask参数来获得对角线热图。要获得“混合”热图,这样你就可以用不同的颜色Map绘制两种不同类型的数据,你可以这样做:希望这就是你的第二个想法。注意,这只会在你有相同的列名时起作用。
zkure5ic3#
Quark的答案的一个轻微的扭曲,以避免矩阵中的0值,这将导致这些值显示后面的cmap。我们可以计算布尔矩阵来掩盖上/下三角形。More info here。还添加了cbars的限制来固定比例。
2