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 中实现这一点。我尝试将 Date 和 Hour 结合起来创建一个 datetime 列,但是很难使用 date 的 Int 值。我也喜欢当它们分开时,Excel 在 Y 轴上给我的干净格式。
解决方案
以下内容适用于当前的 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()
推荐阅读
- ios - iOS swift - 处理来自 API 的响应
- amazon-s3 - Rundeck S3 插件
- php - Twig 中的 PHP for 循环
- typescript - 打字稿如何重写接口的属性类型
- java - 如何直接在 JDL 中加密 JHIPSTER 应用程序的数据?
- c# - 如何统一更新gps?
- java - 在 Mockito 的测试方法中忽略非无效方法
- java - 命令“echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a”失败并在期间以 1 退出
- python - 如何使用字典变量制作多个子图?
- hadoop - Hadoop 数据节点因消息“无法加载 libhadoop”而关闭