旋转后没有刻度标签

时间:2016-08-14 23:30:44

标签: python-2.7 matplotlib

勾选标签消失,当我想在绘图上旋转它们时。 这是代码:

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 个答案:

答案 0 :(得分: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