gpt4 book ai didi

python - 在 Matplotlib 中注释时间序列图

转载 作者:IT老高 更新时间:2023-10-28 21:54:46 25 4
gpt4 key购买 nike

我有一个日期索引数组 (x)(日期时间对象)和一个实际值数组(y:债券价格)。正在做(在 iPython 中):

plot(x,y)

生成一个非常精细的时间序列图,其中 x 轴标有日期。到目前为止没有问题。但我想在某些日期添加文字。例如,在 2009 年 10 月 31 日,我希望显示文本“事件 1”,并带有一个指向该日期 y 值的箭头。

我已经阅读了关于 text()annotate() 的 Matplotlib 文档,但无济于事。它仅涵盖标准编号的 x 轴,我无法推断如何在我的问题上处理这些示例。

谢谢

最佳答案

Matplotlib 对日期使用内部浮点格式。

您只需将日期转换为该格式(使用 matplotlib.dates.date2nummatplotlib.dates.datestr2num),然后使用 annotate 像往常一样。

作为一个有点过于花哨的例子:

import datetime as dt
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

x = [dt.datetime(2009, 05, 01), dt.datetime(2010, 06, 01),
dt.datetime(2011, 04, 01), dt.datetime(2012, 06, 01)]
y = [1, 3, 2, 5]

fig, ax = plt.subplots()
ax.plot_date(x, y, linestyle='--')

ax.annotate('Test', (mdates.date2num(x[1]), y[1]), xytext=(15, 15),
textcoords='offset points', arrowprops=dict(arrowstyle='-|>'))

fig.autofmt_xdate()
plt.show()

enter image description here

关于python - 在 Matplotlib 中注释时间序列图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11067368/

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