在Matplotlib中显示x轴 - Python

3

我有两个数组,我想像这样绘制它们的图形

dates = [datetime.date(2015, 11, 22), datetime.date(2015, 11, 23), datetime.date(2015, 11, 24)]
points = [3L, 1L, 2L]

然后我这样绘图

plt.plot(dates, points, 'r-o')
plt.xticks(rotation=70)
plt.tight_layout()
plt.savefig('test.pdf')

这将产生类似于以下的图表

enter image description here

但我不想要显示时间,我想要显示日期,而且我的数据是一个日期数组,而不是日期时间或时间,那么x轴上显示的是什么时间呢?

如何使它在x轴上像这样显示 2015-11-22, 2015-11-23, 2015-11-24

1个回答

2
请尝试以下方法:

代码运行结果

dates = [datetime.date(2015, 11, 22), datetime.date(2015, 11, 23), datetime.date(2015, 11, 24)]
points = [3L, 1L, 2L]
x = [x for x in range(0,len(points))]
plt.plot(points, 'r-o')
plt.xticks(rotation=70)
plt.xticks(x,dates)
plt.tight_layout()
plt.savefig('test.pdf')

我希望您能有所帮助。

我仍然在x轴上没有标签。 - spen123
不确定这是否有所不同,但当我执行 print dates 时,我会得到 [datetime.date(2015, 11, 22), datetime.date(2015, 11, 23), datetime.date(2015, 11, 24)],就像问题中一样,而当我执行 print dates[0] 时,我会得到 2015-11-22 - spen123
不,这是正常的,datetime.date的字符串化是在使用print函数打印日期时出现的。尝试从xticks中删除旋转。不要忘记关闭打开的pdf文件(以便正确处理重写)。我知道这不是一个答案,但代码在这里可以工作;) 尝试复制/粘贴我的代码以查看结果。尝试使用plt.show()而不是plt.savefig()快速查看结果。永远不要忘记关闭窗口... - A.H

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接