我正在尝试用熊猫绘制一些系列。但是当我尝试在轴上设置带有日期的主要定位器时,我遇到了问题。
如果您想尝试与我的同一数据集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
看起来像这样:
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]
答案 0 :(得分:2)
如果你想在pandas生成的图上使用matplotlib.dates
定位器和格式化器,你需要在兼容模式下绘图,
df.plot(..., x_compat=True)