【问题标题】:Cannot set datetime ticks when using pandas使用熊猫时无法设置日期时间刻度
【发布时间】:2018-11-02 16:02:31
【问题描述】:

我正在尝试用熊猫绘制一些系列。但是,当我尝试使用日期在轴上设置主要定位器时遇到问题。

如果你想尝试与我相同的数据集,here's the pickle

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

df = pd.read_pickle('df.pkl')
df = df.set_index('time')

ax = df.plot(y=['dataset1', 'dataset2'], figsize=(10,5))

h_locator = mdates.HourLocator(byhour=[0, 6, 12, 18])
ax.xaxis.set_major_locator(h_locator)
ax.grid(True)
plt.show()

我想每天显示 4 个网格刻度(小时:0、6、12 和 18),但输出与我不设置任何定位器相同。

我的DataFrame 看起来像这样:

数据集1 数据集2 2018-04-16 00:00:00 0.000000 0.516667 2018-04-16 00:15:00 0.011111 0.244444 2018-04-16 00:30:00 0.000000 0.388889 2018-04-16 00:45:00 0.000000 0.211111 2018-04-16 01:00:00 0.000000 0.127778 …… 2018-04-19 22:45:00 0.022222 0.250000 2018-04-19 23:00:00 0.166667 0.505556 2018-04-19 23:15:00 0.000000 0.688889 2018-04-19 23:30:00 0.000000 1.733333 2018-04-19 23:45:00 0.055556 0.283333 [384 行 x 2 列]

【问题讨论】:

    标签: python python-3.x pandas matplotlib


    【解决方案1】:

    如果你想在 pandas 生成的绘图上使用 matplotlib.dates 定位器和格式化器,你需要在兼容模式下绘图,

    df.plot(..., x_compat=True)
    

    【讨论】:

    • 这就像一个魅力!谢谢,我花了大约半天的时间,找不到解决办法:(
    猜你喜欢
    • 2016-07-05
    • 2019-02-23
    • 2019-07-19
    • 2022-10-12
    • 2019-07-11
    • 2017-02-23
    • 2016-11-09
    • 2018-06-29
    • 1970-01-01
    相关资源
    最近更新 更多