Matplotlib右侧Y轴标签270°旋转后间距异常问题咨询
问题
将Matplotlib图表的Y轴标签移至右侧并旋转270°后,标签与轴边框的间距显示异常(表现为标签紧贴右侧轴边框,间距明显过小),相关代码如下:
ax.yaxis.set_label_position("right") ax.set_ylabel("latitude", rotation=270)
手动设置ax.set_ylabel("latitude", rotation=270, labelpad=12.0)可以视觉修复间距问题,但我认为Matplotlib新版本应该有更优的自动修正方案,无需手动调整间距。未设置旋转时间距正常,推测问题与旋转后的文本居中逻辑有关。
解决方案
在Matplotlib 3.4及以上版本中,有两种无需手动设置labelpad的自动适配方案:
利用
loc参数调整对齐逻辑
设置loc="bottom"可以让Matplotlib自动适配旋转后的标签位置,修正间距:ax.yaxis.set_label_position("right") ax.set_ylabel("latitude", rotation=270, loc="bottom")该参数会让标签的对齐方式匹配旋转后的状态,和未旋转时的间距表现一致。
调整标签的垂直对齐属性
通过直接设置标签的垂直对齐方式,让Matplotlib自动计算合适间距:ax.yaxis.set_label_position("right") ylabel = ax.set_ylabel("latitude", rotation=270) ylabel.set_verticalalignment('bottom')
这两种方式都能避免手动计算labelpad的数值,完全由Matplotlib自动处理间距适配。
内容的提问来源于stack exchange,提问作者shadowtalker
相关产品推荐
相关产品推荐

