図が描かれる前に、ticklabelsは空です。したがって ax.xaxis.get_majorticklabels()
をplt.show()
の前に呼び出すと、空のシーケンスText
が返されます。この問題を解決するために
一つの方法ではなく、
ax.set_xticklabels(ax.xaxis.get_majorticklabels(), rotation='vertical')
のplt.xticks(rotation=90)
を呼び出すことです。この問題を解決する別の方法は、非空の文字列とText
ラベルを移入するax.xaxis.get_majorticklabels()
を呼び出す前fg.canvas.draw()
を呼び出すことですが、これは以来、非効率的ですfg.canvas.draw()
とplt.show()
を使用すると図が2回レンダリングされますが、これは実際にはplt.xticks
を使用することができるため、必要ではありません。
import numpy as np
from matplotlib import pyplot as plt
fg = plt.figure()
fg.canvas.set_window_title('My plot')
my_points = np.random.randint(10, size=10)
ax = fg.add_subplot(1,1,1)
ax.plot(my_points)
plt.xticks(rotation=90)
plt.show()
![enter image description here](https://i.stack.imgur.com/88qXg.png)