【问题标题】:Getting Pandas datetime column to display as Dates, not Numbers, on Matplotlib X-axis让 Pandas 日期时间列在 Matplotlib X 轴上显示为日期,而不是数字
【发布时间】:2016-02-16 18:01:40
【问题描述】:

使用 pandas 并想知道为什么日期列没有显示为实际日期(类型 = pandas.tslib.Timestamp)而是显示为数字。

以这个可复制的例子为例:

todays_date = datetime.datetime.now().date()

columns = ['month','A','B','C','D']

_dates = pd.DataFrame(pd.date_range(todays_date-datetime.timedelta(10), periods=150, freq='M'))
_randomdata = pd.DataFrame(np.random.randn(150, 4))

data = pd.concat([_dates, _randomdata], axis=1)

data.plot(figsize = (10,6))

如您所见,x 轴显示为数字,而不是日期。

2 个问题:

a) 如何更改它以使实际日期显示在 x 轴上? b) 如果我想显示更多/更少的月份,如何更改 x 轴上的刻度和刻度标签的频率?

谢谢大家!

【问题讨论】:

    标签: python datetime pandas matplotlib


    【解决方案1】:

    只需使用 date_range 作为 DataFrame 的索引:

    todays_date = datetime.datetime.now().date()
    
    columns = ['A','B','C','D']
    
    data = pd.DataFrame(data=np.random.randn(150, 4),
                        index=pd.date_range(todays_date-datetime.timedelta(10), periods=150, freq='M'), 
                        columns=columns)
    data.plot(figsize = (10,6))
    

    【讨论】:

    • 如果我想显示更多/更少的月/年,如何更改 x 轴上的刻度和刻度标签的频率?
    • 我认为this 给出了最好的答案。使用 matplotlib 的日期模块。
    猜你喜欢
    • 1970-01-01
    • 2015-06-19
    • 2015-05-02
    • 2020-03-11
    • 2016-01-03
    • 2019-03-03
    • 2020-12-07
    • 2021-08-21
    • 1970-01-01
    相关资源
    最近更新 更多