在绘制图形之前,在matplotlib中获取轴刻度

在绘制图形之前,在matplotlib中获取轴刻度,matplotlib,Matplotlib,如何在不首先调用plt.show的情况下获取matplotlib轴的刻度标签?我试图设置一组子图,操纵它们的窗口限制和勾选标签,然后将它们全部显示在屏幕上。但是,getxticklabels()方法返回空字符串,除非调用了plt.show: import matplotlib.pyplot as plt fig, ax = plt.subplots(1, 1) ax.plot(1, 1) print("before plt.show(): {}".format(ax.get_xtick

如何在不首先调用
plt.show
的情况下获取matplotlib轴的刻度标签?我试图设置一组子图,操纵它们的窗口限制和勾选标签,然后将它们全部显示在屏幕上。但是,
getxticklabels()
方法返回空字符串,除非调用了
plt.show

import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1)
ax.plot(1, 1)    

print("before plt.show(): {}".format(ax.get_xticklabels()[0].get_text()))
plt.show()
print("after plt.show(): {}".format(ax.get_xticklabels()[0].get_text()))
输出:

In [33]: %run plt_premature_ticks.py
before plt.show():
after plt.show(): 0.94
在实际显示图形之前尝试获取标签不是预期的行为吗?

ax.getxticklabels()之前添加
fig.canvas.draw()

在ax.getxticklabels()之前添加
fig.canvas.draw()

虽然对原始问题给出了正确的答案,但我遇到了一些情况,其中需要调用axis实例的
draw
方法以使记号标签可见。在这种情况下,应调用以下命令:

renderer = fig.canvas.get_renderer()
ax.draw(renderer)
虽然对原始问题给出了正确的答案,但我遇到了一些情况,其中需要调用axis实例的
draw
方法以使记号标签可见。在这种情况下,应调用以下命令:

renderer = fig.canvas.get_renderer()
ax.draw(renderer)