热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SeabornHeatmapSubplots-保持轴比率一致

如何解决《SeabornHeatmapSubplots-保持轴比率一致》经验,为你挑选了1个好方法。

如果我有以下代码:

import seaborn 
import matplotlib.pyplot as plt
flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
f,(ax1,ax2,ax3) = plt.subplots(1,3,sharey=True)
g1 = sns.heatmap(flights,cmap="YlGnBu",cbar=False,ax=ax1)
g1.set_ylabel('')
g1.set_xlabel('')
g2 = sns.heatmap(flights,cmap="YlGnBu",cbar=False,ax=ax2)
g2.set_ylabel('')
g2.set_xlabel('')
g3 = sns.heatmap(flights,cmap="YlGnBu",ax=ax3)
g3.set_ylabel('')
g3.set_xlabel('')

哪个输出如下 - 在此输入图像描述

如何调整子图,使g3轴与g1,g2轴的宽度相同.由于我没有将颜色条添加到前两个轴',因此seaborn会缩小第三个轴以使整个图形保持一致.这是可以理解的.

我要这个:

在此输入图像描述

也许我需要制作一个4面板子图,第四个面板只包含颜色条?



1> ImportanceOf..:

一种方法是创建4个轴,其中第四个轴将包含颜色条.您可以使用cbar_ax参数告诉热图在哪些轴上绘制颜色条.为了创建具有一定比例的轴,您可以使用gridspec_kw参数来subplots.问题是轴将与颜色条共享y缩放,因此我们需要关闭共享并手动共享前三个轴ax1.get_shared_y_axes().join(ax2,ax3).这反过来会产生不需要的轴标签,需要关闭.

import seaborn  as sns
import matplotlib.pyplot as plt
flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
f,(ax1,ax2,ax3, axcb) = plt.subplots(1,4, 
            gridspec_kw={'width_ratios':[1,1,1,0.08]})
ax1.get_shared_y_axes().join(ax2,ax3)
g1 = sns.heatmap(flights,cmap="YlGnBu",cbar=False,ax=ax1)
g1.set_ylabel('')
g1.set_xlabel('')
g2 = sns.heatmap(flights,cmap="YlGnBu",cbar=False,ax=ax2)
g2.set_ylabel('')
g2.set_xlabel('')
g2.set_yticks([])
g3 = sns.heatmap(flights,cmap="YlGnBu",ax=ax3, cbar_ax=axcb)
g3.set_ylabel('')
g3.set_xlabel('')
g3.set_yticks([])

# may be needed to rotate the ticklabels correctly:
for ax in [g1,g2,g3]:
    tl = ax.get_xticklabels()
    ax.set_xticklabels(tl, rotation=90)
    tly = ax.get_yticklabels()
    ax.set_yticklabels(tly, rotation=0)

plt.show()

在此输入图像描述


推荐阅读
author-avatar
你的拥吻像情歌一样凄美_207
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有