matplotlib 使用每天频率格式化x轴

xmakbtuz  于 2023-06-23  发布在  其他
关注(0)|答案(1)|浏览(100)

我正在尝试获取每日数据图。我有3个月的数据,每天都很难指出。我怎样才能格式化x轴,这样我就可以得到每一个日期?

but5z9lq

but5z9lq1#

可以使用“set_major_locator(mdates.DayLocator(interval=5))”来更改主刻度的频率,如下面的示例所示。
打印3个月内每天的数据会导致x轴非常拥挤。因此,可能值得设置主要刻度,如每5天一次,然后每天设置次要刻度,如下面的示例所示。
另外,我建议看看matplotlib中的example和非常相似的question
示例:

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天。

相关问题