勾选标签消失,当我想在绘图上旋转它们时。 这是代码:
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)
答案 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()