Seaborn中的多层热图?

时间:2019-09-11 14:17:37

标签: 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     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 个答案:

答案 0 :(得分:1)

此链接可以帮助您: Combine multiple heatmaps in matplotlib

以上链接中的一个答案: 有一些选项可以一起显示2个数据集:

选项1-绘制两个数据集(或比率,视情况而定)之差的热图

pcolor(D2-D1)

,然后列出其中几个比较数字。

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

pcolor(D1)
contour(D2)

如果您确实需要同时显示N> 2个数据集,则可以使用轮廓线或轮廓线f:

contourf(D1,cmap='Blues')
contourf(D2,cmap='Reds', alpha=0.66)
contourf(D2,cmap='Reds', alpha=0.33)

3个轮廓f命令的示例输出

contour(D1,cmap='Blues')
contour(D2,cmap='Reds')
contour(D2,cmap='Reds')

3个轮廓命令的示例输出

不幸的是,类似的alpha技巧不适用于pcolor。