如何缩小Seaborn直方图条形间距并压缩坐标轴去除冗余空间
解决Seaborn displot坐标轴冗余空间问题
针对你用seaborn.displot绘制直方图后想压缩坐标轴冗余空间的需求,有几种实用方法:
方法1:自动调整布局
Seaborn的displot返回的是FacetGrid对象,直接调用它的tight_layout()方法就能自动调整整个绘图区域的布局,自动裁剪掉多余的空白空间:
g = seaborn.displot(data, x=var, stat='probability') plt.xticks(np.arange(0, int(data[var].max() + 1), 1.0)) # 自动去除冗余布局 g.tight_layout() plt.show()
方法2:手动限定坐标轴范围
如果想更精准地控制轴的范围,可以直接设置x轴的起止值,让它完全贴合数据的实际范围:
g = seaborn.displot(data, x=var, stat='probability') plt.xticks(np.arange(0, int(data[var].max() + 1), 1.0)) # 限定x轴范围为0到数据最大值 g.set(xlim=(0, data[var].max())) plt.show()
方法3:轴自动缩放适配数据
也可以获取绘图的轴对象,开启自动缩放让轴完全贴合数据:
g = seaborn.displot(data, x=var, stat='probability') plt.xticks(np.arange(0, int(data[var].max() + 1), 1.0)) # 对每个轴开启紧密自动缩放 for ax in g.axes.flat: ax.autoscale(tight=True) plt.show()
你可以根据需求选择其中一种方法,也可以结合使用(比如先限定轴范围再调用tight_layout()),都能有效去除坐标轴的冗余空间。
内容的提问来源于stack exchange,提问作者A. Bollans
相关产品推荐
相关产品推荐

