我无法弄清楚如何旋转X轴上的文本。它是一个时间戳,随着样本数量的增加,它们越来越近,直到它们重叠。我想将文本旋转90度,以便样本靠近在一起,它们不重叠。下面是我的,它工作得很好,除了我无法弄清楚如何旋转X轴文本。import sysimport matplotlibmatplotlib.use('Agg')import matplotlib.pyplot as pltimport datetimefont = {'family' : 'normal', 'weight' : 'bold', 'size' : 8}matplotlib.rc('font', **font)values = open('stats.csv', 'r').readlines()time = [datetime.datetime.fromtimestamp(float(i.split(',')[0].strip())) for i in values[1:]]delay = [float(i.split(',')[1].strip()) for i in values[1:]]plt.plot(time, delay)plt.grid(b='on')plt.savefig('test.png')
3 回答
白板的微信
TA贡献1883条经验 获得超3个赞
简单的方法
如此处所述,类中存在一种现有方法,matplotlib.pyplot figure可以根据您的需要自动旋转日期。
您可以在绘制数据后调用它(即ax.plot(dates,ydata):
fig.autofmt_xdate()
如果您需要进一步格式化标签,请查看以上链接。
非日期时间对象
根据languitar的评论,我建议用于非日期时间的方法xticks在缩放等时不会正确更新。如果它不是datetime用作x轴数据的对象,你应该按照Tommy的回答:
for tick in ax.get_xticklabels():
tick.set_rotation(45)
动漫人物
TA贡献1815条经验 获得超10个赞
试试pyplot.setp。我想你可以这样做:
x = range(len(time))
plt.xticks(x, time)
locs, labels = plt.xticks()
plt.setp(labels, rotation=90)
plt.plot(x, delay)
添加回答
举报
0/150
提交
取消