2016-08-14 5 views

ответ

1

Перед фигура рисуется, то 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() 

enter image description here

Смежные вопросы