我不知道如何在X轴上旋转文本。这是一个时间戳,所以随着样本数量的增加,它们会越来越近,直到重叠。我想将文本旋转90度,这样当样本靠近时,它们就不会重叠。

下面是我所拥有的,除了我不知道如何旋转X轴文本外,它工作得很好。

import sys

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import datetime

font = {'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')

当前回答

公寓里

plt.xticks(rotation=90)

这也是可能的:

plt.xticks(rotation='vertical')

其他回答

pyplot.setp试试。我认为你可以这样做:

x = range(len(time))
plt.xticks(x,  time)
locs, labels = plt.xticks()
plt.setp(labels, rotation=90)
plt.plot(x, delay)

我想到了一个类似的例子。同样,旋转关键字是..这是关键。

from pylab import *
fig = figure()
ax = fig.add_subplot(111)
ax.bar( [0,1,2], [1,3,5] )
ax.set_xticks( [ 0.5, 1.5, 2.5 ] )
ax.set_xticklabels( ['tom','dick','harry'], rotation=45 ) ;

如果您想在axis对象上应用旋转,最简单的方法是使用tick_params。为例。

ax.tick_params(axis='x', labelrotation=90)

这里有Matplotlib文档参考。

当你有一个由plt返回的轴数组时,这很有用。子图,它比使用set_xticks更方便,因为在这种情况下,您还需要设置tick标签,而且比那些迭代tick标签更方便(原因很明显)。

公寓里

plt.xticks(rotation=90)

这也是可能的:

plt.xticks(rotation='vertical')

这对我来说很管用:

plt.xticks(rotation=90)