Matplotlib 刻度频率

Matplotlib tick frequency

我有一个日期列表,我正在根据分数列表绘制。

date = ['5/25/2015', '5/25/2015', '5/3/2015', '2/4/2015', '2/1/2015', '1/25/2015', '12/31/2014', '10/9/2014', '8/26/2014', '7/24/2014', '7/3/2014', .....]`

scores = [6.497, 14.915, 9.911, 9.908, 11.99, 10.993, 14.987, .... ]  

两者数量相等。

我正在生成如下图表:

figScore = plt.figure() 
plt.plot(range(len(Scores)), Scores)
plt.xticks(range(len(Scores)), date, size = "small", rotation = 90)
plt.tight_layout()

name = 'plot.png'
figScore.savefig(name)

(由于 <10 次代表没有图像)

但是,我无法更改滴答频率。我希望 x 标签每 5 个日期出现在 x 轴上。我已经尝试了多种方法来解决这个问题,但都行不通。

不确定这是否是最简单的方法,但一种方法是只制作一个额外的列表,除了每隔五个日期外,大部分都是空白的。例如:

plotdate = []
for idx, val in enumerate(date):
    if idx%5 == 0:
        plotdate.append(val)
    else:
        plotdate.append('')

然后只需在对 plt.xticks 的调用中使用 plotdate 列表而不是日期变量。这似乎对我有用。