我的数据如下:
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轴上显示。
答案 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()