使用每日频率格式化 x 轴

2024-05-08

我正在尝试获取每日数据图。我有 3 个月的数据,每天都很难指出。如何格式化 x 轴,以便我可以获得每个日期?


可以使用以下命令更改主要刻度的频率set_major_locator(mdates.DayLocator(interval=5))如下例所示。

打印 3 个月数据中每天的日期会导致 X 轴非常拥挤。因此,可能值得设置主要刻度(例如每 5 天一次),然后设置次要刻度(每天),如下例所示。

我也建议看看这个example https://matplotlib.org/examples/api/date_demo.html来自 matplotlib 和这个question https://stackoverflow.com/questions/25538520/change-tick-frequency-on-x-time-not-number-frequency-in-matplotlib这非常相似。

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

from datetime import datetime

# Just creating some random data
x = []
day = 1
month = 5
for ix in range(90):
    try:
        x.append(datetime(2000, month, day))
        day +=1
    except ValueError:
        day = 1
        month += 1
y = np.random.uniform(0, 10, len(x))

fig = plt.figure()
ax = fig.add_subplot(111)

ax.xaxis.set_minor_locator(mdates.DayLocator(interval=1))
ax.xaxis.set_major_locator(mdates.DayLocator(interval=5))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))

ax.plot(x, y)
fig.autofmt_xdate()

ax.grid(True)

plt.show()

这将给出这样的图(数据会有所不同,因为它是随机的),每天都有次要刻度,每 5 天有一个带有标签的主要刻度。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用每日频率格式化 x 轴 的相关文章

随机推荐