首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在matplotlib(Python)中有效地绘制日期?

如何在matplotlib(Python)中有效地绘制日期?
EN

Stack Overflow用户
提问于 2021-07-20 08:13:43
回答 2查看 132关注 0票数 0

这是一个代码,从2021年1月到7月,在印度绘制了所有新冠肺炎测试用例。记录是每天的基础,但我的scatterplot只显示17点和日期重叠。有什么有效的方法吗?

代码语言:javascript
运行
复制
df.to_numpy()
df1 = df[(df.date.str.endswith("21")) & (df.location == "India")]
plt.scatter(x=df1.date, y=df1.total_cases)

这是一个图表:

非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-20 09:59:08

让我们首先创建一个玩具dataframe:

代码语言:javascript
运行
复制
data = [[f"{i%30+1:02}/{6+i//30:02}/21", np.random.randint(i, i+10)**2] 
        for i in range(5, 50)]
df = pd.DataFrame(data, columns=["date", "total_cases"])

我建议将日期转换为日期格式,以便于一般的处理,特别是matplotlib来调整其轴。

代码语言:javascript
运行
复制
df.date = pd.to_datetime(df.date, format="%d/%m/%y")

现在matplotlib可以处理它,并可以选择适当的x-滴答数。因为标签很长,我们也可以旋转它。

代码语言:javascript
运行
复制
plt.plot(df.date, df.total_cases, '.')
plt.xticks(rotation=25, ha="right")
plt.tight_layout()
plt.show()

3.4版。Matplotlib提供了一种在x轴上显示日期的方便方法:

代码语言:javascript
运行
复制
plt.rcParams['date.converter'] = 'concise'
plt.plot(df.date, df.total_cases, '.')
plt.tight_layout()
plt.show()

票数 0
EN

Stack Overflow用户

发布于 2021-07-20 08:44:32

您可以使用xticks属性以任意程度旋转。

代码语言:javascript
运行
复制
plt.xticks(rotation=45)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68451619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档