2016-08-14 78 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