Matplotlib中如何实现artist_axis的y轴刻度标签旋转?
解决Matplotlib中旋转y轴刻度标签的问题
嘿,我懂你遇到的困扰啦!你之前用的set_tick_out(True)其实找错了工具——这个函数的作用是控制刻度线(就是那些和标签配套的小短线)朝向图表外部还是内部,完全不是用来旋转刻度标签文字的,难怪设置后没看到效果~
下面给你两种正确的实现方式,根据你的使用场景选就行:
场景1:普通Matplotlib Axes对象
如果是常规的绘图轴,直接用tick_params()或者set_yticklabels()就能轻松旋转标签:
import matplotlib.pyplot as plt # 创建基础绘图 fig, ax = plt.subplots() ax.plot([1, 2, 3], [4, 5, 6]) # 方法1:用tick_params一次性设置y轴标签旋转180度 ax.tick_params(axis='y', labelrotation=180) # 方法2:手动获取并设置刻度标签的旋转角度 # ax.set_yticklabels(ax.get_yticklabels(), rotation=180) plt.show()
场景2:使用axisartist的自定义轴(比如你提到的ax.axis['yzero'])
如果你是用了mpl_toolkits.axisartist模块创建的自定义轴,需要直接针对该轴的刻度标签对象设置旋转:
from mpl_toolkits.axisartist import SubplotHost import matplotlib.pyplot as plt fig = plt.figure() ax = SubplotHost(fig, 1, 1, 1) fig.add_subplot(ax) # 旋转yzero轴的主、副刻度标签 ax.axis['yzero'].major_ticklabels.set_rotation(180) ax.axis['yzero'].minor_ticklabels.set_rotation(180) plt.draw() plt.show()
简单总结下:
- 要旋转刻度标签文字,找
ticklabels对象的set_rotation()方法,或者用tick_params()的labelrotation参数 set_tick_out()只负责控制刻度线的朝向,和文字旋转没关系哦~
内容的提问来源于stack exchange,提问作者Kenenbek Arzymatov
相关产品推荐
相关产品推荐

