【问题标题】:Pandas dataframe x-axis date incorrect formatting when plotted [duplicate]绘制时熊猫数据框x轴日期格式不正确[重复]
【发布时间】:2021-11-25 01:24:46
【问题描述】:

我正在使用 matplotlib 绘制数据框。

但是,当 x 轴是 df.index 日期时,我无法弄清楚如何将 x 轴正确地绘制为日期。

x 轴日期下方的输出错误。

import pandas as pd
import matplotlib.pyplot as plt

dttm = ["2021-01-01", "2021-01-02", "2021-01-03"]
dttm = pd.to_datetime(dttm)
data = [10, 20, 30]

DF = pd.DataFrame()
DF['value'] = data
DF = DF.set_index(dttm)

print(DF)

plt.plot(DF)
plt.gcf().autofmt_xdate()
plt.show()

df 打印:

            value
2021-01-01     10
2021-01-02     20
2021-01-03     30

【问题讨论】:

    标签: python pandas matplotlib


    【解决方案1】:

    我真的不知道为什么,但是如果您不将日期转换为日期时间对象,它就可以正常工作:

    我会说 matplotlib 已经有一些东西可以转换日期并且做两次可能会毁掉它,但这纯粹是一种猜测。

    【讨论】:

    • 我给出的例子是我的代码的精简版。数据框的索引为日期(datetime64),因此将“DF = DF.set_index(dttm)”放在我的代码中
    • 然后假设您的日期在名为“date”的列中,您可以这样做:df["date_str"] = df["date"].astype(str) 然后只做 plt.plot(df["date_str"], df["value"])
    • 谢谢你:)
    • Don't Post Screenshots。答案应该发布为formatted text,并且只有情节图像是可以的。此外,这不是一个好的策略,并且仅在样本只有 3 个 x 轴刻度时才可行。
    猜你喜欢
    • 2013-01-08
    • 2020-01-14
    • 1970-01-01
    • 2019-10-01
    • 2019-08-12
    • 2019-05-10
    • 2018-02-23
    • 1970-01-01
    • 2016-04-10
    相关资源
    最近更新 更多