gpt4 book ai didi

python - 不要在轴上写出所有日期,Matplotlib

转载 作者:行者123 更新时间:2023-11-28 20:48:10 25 4
gpt4 key购买 nike

看看这个例子:

import datetime as dt
from matplotlib import pyplot as plt
import matplotlib.dates as mdates
x = []
d = dt.datetime(2013, 7, 4)
for i in range(30):
d = d+dt.timedelta(days=1)
x.append(d)

y = range(len(x))
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%d-%m-%Y'))
plt.gca().xaxis.set_major_locator(mdates.DayLocator())
plt.gcf().autofmt_xdate()
plt.bar(x,y)
plt.show()

代码在图中的 x 轴上写出日期,请参见下图。问题是日期被堵塞了,如图所示。如何让 matplotlib 只写出每五分之一或每十分之一的坐标?

enter image description here

最佳答案

您可以为 DateLocator 指定一个 interval 参数,如下所示。例如interval=5 定位器每 5 个日期放置一次刻度。此外,将 autofmt_xdate() 放在 bar 方法之后以获得所需的输出。

import datetime as dt
from matplotlib import pyplot as plt
import matplotlib.dates as mdates
x = []
d = dt.datetime(2013, 7, 4)
for i in range(30):
d = d+dt.timedelta(days=1)
x.append(d)

y = range(len(x))
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%d-%m-%Y'))
plt.gca().xaxis.set_major_locator(mdates.DayLocator(interval=5))
plt.bar(x, y, align='center') # center the bars on their x-values
plt.title('DateLocator with interval=5')
plt.gcf().autofmt_xdate()
plt.show()

Bar plot with ticks at every 5th date.

使用 interval=3,您将在每第 3 个日期得到一个标记:

Bar plot with ticks at every 3rd date.

关于python - 不要在轴上写出所有日期,Matplotlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17452179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com