使用pandas时无法设置日期时间刻度

时间:2018-05-23 15:27:01

标签: python python-3.x pandas matplotlib

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

如果您想尝试与我的同一数据集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),但输出与我不设置任何定位器的输出相同。

plot

我的DataFrame看起来像这样:

                     dataset1  dataset2
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 rows x 2 columns]

1 个答案:

答案 0 :(得分:2)

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

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