Matplotlib:获取刻度标签属性(例如字体大小)?

Matplotlib: getting tick label properties (e.g. font size)?

给定一个 matplotlib 中的轴对象,我想找到刻度标签的属性,例如字体大小、旋转等

我为什么要这样做?因为我试图编写一个向绘图添加一些文本的函数,并且我希望文本默认看起来与 (y) 轴刻度标签相同。

我用谷歌搜索并找到了很多关于如何设置刻度标签属性的解释,但没有找到如何从坐标区检索这些属性的解释。

编辑:Axes.get_xticklabels 在大多数情况下都有效,但如果当前没有滴答声,它当然会中断,这种情况很少见,但这仍然不理想。似乎 Axes 对象本身有一个 属性 ,而不仅仅是这个函数返回的 Text 对象。考虑:

fig, ax = plt.subplots(1,1)
ax.yaxis.set_ticks([])
ax.yaxis.get_ticklabels() # this returns []

ax.tick_params(axis='y', labelsize=25)
ax.yaxis.set_ticks([0.5])

在 运行 这段代码之后,刻度标签“0.5”以 25 号字体显示,这意味着 25 存储在轴的某个位置,而不仅仅是在文本对象中。

您可能必须从构成刻度标签的各个 matplotlib.text.Text 对象中获取属性。

例如,如果您知道它们都是一样的:

xta = ax.get_xticklabels()
xtext = xta[0]
print(xtext.get_font())                 # sans\-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0
print(xtext.get_fontfamily())           # ['sans-serif']
print(xtext.get_fontsize())             # 10.0
print(xtext.get_rotation())             # 0.0
print(xtext.get_rotation_mode())        # None

吸气剂在链接文档中列出,或者可以在 print(dir(xtext))

中找到