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 列表而不是日期变量。这似乎对我有用。
我有一个日期列表,我正在根据分数列表绘制。
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 列表而不是日期变量。这似乎对我有用。