Matplotlib seaborn的多层热图?

Matplotlib seaborn的多层热图?,matplotlib,seaborn,heatmap,Matplotlib,Seaborn,Heatmap,我有一个3列的数据框。每列都包含一些“标签”。我想研究三列标签之间的对应关系。因此,我为每对列创建了3个热图,显示了一对标签出现的次数 例如: colA | colB | colC dog car USA cat plane Germany fish truck Spain eagle bike France dog car USA eagle train UK 上面前两列的热图为: dog 2 0

我有一个3列的数据框。每列都包含一些“标签”。我想研究三列标签之间的对应关系。因此,我为每对列创建了3个热图,显示了一对标签出现的次数

例如:

colA  | colB  | colC

dog     car     USA
cat     plane   Germany
fish    truck   Spain
eagle   bike    France
dog     car     USA
eagle   train   UK
上面前两列的热图为:

dog      2     0     0     0     0
cat      0     1     0     0     0
fish     0     0     1     0     0
eagle    0     0     0     1     1
        car  plane truck bike train
现在,以同样的方式,我可以创建另外两个热图。我的问题是,我是否可以将其中两个(例如,保持水平轴不变,并为其他两列添加两个垂直轴)组合起来创建包含整个三元组对应关系的热图

对不起,如果我的问题看起来有点模糊,但我想看看是否有办法以热图的方式可视化三方通信

此链接可以帮助您:

以上链接中的答案之一: 有几个选项可以同时显示两个数据集:

选项1-绘制两个数据集差异的热图(或比率,在您的情况下更合适的)

然后给出几个比较图

选项2-将1个数据集显示为pcolor,另一个显示为countour:

pcolor(D1)
contour(D2)
如果您确实需要同时显示N>2个数据集,我会选择contour或contourf:

contourf(D1,cmap='Blues')
contourf(D2,cmap='Reds', alpha=0.66)
contourf(D2,cmap='Reds', alpha=0.33)
3个contourf命令的输出示例

3个轮廓命令的输出示例


不幸的是,类似的alpha技巧在pcolor上不起作用。

如果你能解释一下热图应该是什么样子,那会有帮助。选项可能是,或者也可能是,如果至少两列的唯一类别数量不相同怎么办?@ImportanceOfBeingErnest:关于唯一类别的数量,是否可以沿着数据帧向下移动,直到数量相等,即使您在每列的不同行停止?关于风格,这很好,但我不知道如何根据我的情况调整它,因为我真的不理解那里的代码。columnA中有4个类别,columnC中有5个类别。我不知道那张热图应该是什么样子。但是,如果可以创建相同形状的相应矩阵,则可以应用任何链接(即使不理解它们)。
contourf(D1,cmap='Blues')
contourf(D2,cmap='Reds', alpha=0.66)
contourf(D2,cmap='Reds', alpha=0.33)
contour(D1,cmap='Blues')
contour(D2,cmap='Reds')
contour(D2,cmap='Reds')