我正在学习matplotlib,并试图绘制一个简单的散点图,x轴上有日期,y轴上有值。有2200个日期,从2004年到2019年,(格式2014-09-17类型O)。
下面是我的代码:
x=df.DATE
y=df.CLOSE
plt.figure(figsize=(21,12))
plt.xticks(fontsize=8, rotation = 45)
plt.scatter(x,y)
这个图很棒,但是,很明显,xaxis有2000个条目!我检查了Matplotlib文档(可能是我的,但它不是很noob友好,不像python文档)和其他关于stackoverflow的帖子,关于如何减少写在x轴上的标签(日期)的数量,并找到了各种命令:我尝试了各种各样的变化,但是没有一个能用。很多都需要“ax.”,我没有用过,当我尝试轴的时候,它告诉我它没有定义。
我被难住了。有什么简单的方法可以把x轴上的条目数减少到,比如说最多“n”个日期,或者每10个日期就有一个?
谢谢你!
2条答案
按热度按时间sd2nnvve1#
以防其他人也有同样的问题。我找到了两个简单的方法...
第一个
plt.locator_params(axis="x", nbins=<number>)
我不知道为什么或如何工作,但我的情节最初有2204个日期在这种格式:2014年9月17日,在45度下打印出一条粗黑且不可读的线。
我用“number”= 3重新运行代码,重新绘制了x轴上的年份,格式为2015年,7个数字,2015-2021年,再用“1”和“2”做一次,看看发生了什么,仍然得到了7年,没有任何变化。
下面是原始代码和图表:
以下是修改后的代码和新图表。
我完全不知道为什么这样做是有效的,为什么它只打印年份而不是整个日期。
如果有人能开导我,我会很高兴的。
第二个
记住日期的格式如下:2020-09-24,添加此代码:
所以现在看起来像这样:
图表如下所示:
我还不知道为什么它只打印年份,或者如何改变它,比如说,它打印月份,但至少它解决了混乱的x轴标签。
oknwwptz2#
您可以使用类似于以下内容的内容:
下面是一个详细的示例:https://matplotlib.org/2.0.2/examples/api/date_demo.html