gpt4 book ai didi

python - 在 matplotlib 中使用线图时用日期替换 X 轴上的数字

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:54 25 4
gpt4 key购买 nike

我正在绘制一个带有数字数组的直线图

fig, ax = plt.subplots()
ax.plot(x, 0 * x)

x 是数组:

array([  0,1,2,3,4,5,6,7,8,9,10 ])

该行很好,但我想在 x 轴上显示日期。我想关联每个数字的日期并将其用作我的 x 刻度。

谁能给点建议?

最佳答案

你可以控制the ticker format 任意值 using a ticker.FuncFormatter :

import matplotlib.ticker as ticker
def todate(x, pos, today=DT.date.today()):
return today+DT.timedelta(days=x)
fmt = ticker.FuncFormatter(todate)
ax.xaxis.set_major_formatter(fmt)

如果日期显得太拥挤,您可以轮换:

fig.autofmt_xdate(rotation=45)  

例如,

import datetime as DT
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import matplotlib.ticker as ticker

x = np.array([0,1,2,3,4,5,6,7,8,9,10])

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, x**2*np.exp(-x))
def todate(x, pos, today=DT.date.today()):
return today+DT.timedelta(days=x)
fmt = ticker.FuncFormatter(todate)
ax.xaxis.set_major_formatter(fmt)
fig.autofmt_xdate(rotation=45)
plt.show()

产量

enter image description here

关于python - 在 matplotlib 中使用线图时用日期替换 X 轴上的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28595302/

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