Перед фигура рисуется, то ticklabels пусты. Поэтому вызов ax.xaxis.get_majorticklabels()
до plt.show()
возвращает последовательность пустых Text
объектов.
Один из способов исправить это назвать plt.xticks(rotation=90)
вместо
ax.set_xticklabels(ax.xaxis.get_majorticklabels(), rotation='vertical')
Другим способом исправить это назвать fg.canvas.draw()
перед вызовом ax.xaxis.get_majorticklabels()
для заполнения Text
этикетки с непустыми строками, но это неэффективно, так как используя fg.canvas.draw()
и plt.show()
, отображает фигуру дважды, и это не обязательно, поскольку вы можете просто использовать 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()