2016-08-14 79 views
1

当我想要在情节中旋转时,刻度标签消失。 下面的代码:图中绘制旋转后没有刻度标签

from matplotlib import pyplot as plt 

fg = plt.figure() 
fg.canvas.set_window_title('My plot') 

ax = fg.add_subplot(1,1,1) 
ax.plot(my_points) 
ax.set_xticklabels(ax.xaxis.get_majorticklabels(), rotation=90) 

回答

1

之前,ticklabels是空的。所以在plt.show()之前调用 ax.xaxis.get_majorticklabels()返回一个空的Text对象序列。解决这个问题

一种方法是调用plt.xticks(rotation=90)代替

ax.set_xticklabels(ax.xaxis.get_majorticklabels(), rotation='vertical') 

另一种方式来解决这个问题是调用ax.xaxis.get_majorticklabels()填充Text标签与非空字符串之前调用fg.canvas.draw(),但这是低效的,因为使用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