如何调整Matplotlib多子图直方图间距避免子图标题重叠
多列直方图子图标题被遮挡的快速调整方法
这个问题本质是pandas生成多子图直方图时默认行间距过小导致,以下是几个立即可用的简便解法:
推荐:自动适配布局(仅需加1行代码)
直接在原有代码的plt.show()之前插入plt.tight_layout(),即可自动调整所有子图的边距、间距,完全避免标题和上方图形重叠:
修改后的完整代码:
import matplotlib.pyplot as plt %matplotlib inline class_train.hist(bins=50, figsize=(12,7)) plt.tight_layout() # 新增该行 plt.show()
该方法会自动计算所有子图、标题、坐标轴标签所需的占用空间,不需要手动调参数,是最快的解决方案。
可选:手动调整垂直行间距
如果需要自定义行空隙的大小,可以用subplots_adjust手动调整垂直间距参数hspace,数值越大行与行的间隔越宽,同样加在plt.show()之前即可:
# hspace的数值可根据实际效果调整,1.0是比较通用的合适值 plt.subplots_adjust(hspace=1.0)
备选:微调画布尺寸
如果调整后还是觉得拥挤,可以适当增大figsize的高度,比如把原有的figsize=(12,7)改为figsize=(12,9),给上下行留出更多展示空间。
内容的提问来源于stack exchange,提问作者Rory
相关产品推荐
相关产品推荐

