在MatplotLib中绘制日期和小时

时间:2019-03-13 17:25:16

标签: python matplotlib

我的数据如下:

Date        Hour    Count1          Count2          Count3
2019-03-12  0       2459416         2459384         2459416
2019-03-12  1       1735044         1735094         1735044
2019-03-12  2       1137516         1137523         1137516
2019-03-12  3       813602          813603          813602
2019-03-12  4       728658          728637          728658

,并持续了几天。我真的很喜欢Excel中“日期+小时”的格式,但是我不知道如何在Matplotlib中实现这一点。我尝试结合使用“日期”和“小时”来创建datetime列,但是使用日期的Int值却很困难。我也喜欢干净的excel格式,当它们分开时,它们会在Y轴上显示。

enter image description here

1 个答案:

答案 0 :(得分:2)

以下内容适用于当前的matplotlib版本。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates


t = np.arange("2019-03-11 00:00", "2019-03-13 08:00", dtype=np.datetime64)
x = np.cumsum(np.random.randn(len(t)))

fig, ax = plt.subplots()

ax.plot(t,x)

ax.xaxis.set_major_locator(mdates.HourLocator(12))
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%b-%d"))

ax.xaxis.set_minor_locator(mdates.HourLocator(np.arange(0,24,2)))
ax.xaxis.set_minor_formatter(mdates.DateFormatter("%H"))

ax.tick_params(which="major", axis="x", pad=14, size=2)
ax.tick_params(which="minor", axis="x", labelsize=8)

plt.show()

enter image description here