gpt4 book ai didi

python - 使用 matplotlib 在股票图表上跳过周末

转载 作者:行者123 更新时间:2023-12-05 05:09:56 25 4
gpt4 key购买 nike

这不是重复的,因为类似问题的现有答案并不能准确描述我的需要。Matplotlib 内部有很棒的格式化程序,我喜欢使用它们:

ax.xaxis.set_major_locator(matplotlib.dates.MonthLocator())
ax.xaxis.set_major_formatter(matplotlib.dates.DateFormatter('%b%y'))

他们让我绘制这样的股市图表:

I am new here and don't have privilege to post pictures. So please click on it

这是我需要的,但它有 1 个问题:周末。它们出现在 x 轴上,使我的图表有点难看。

please click to see picture

关于这个问题的其他问题给出了创建自定义格式化程序的建议。他们展示了此类格式化程序的示例。但是他们中没有一个像 matplotlib 那样做漂亮的格式化:

5 月 19 日、6 月 19 日、7 月 19 日...

我的意思是这行代码:

ax.xaxis.set_major_formatter(matplotlib.dates.DateFormatter('%b%y'))

我的问题是:请帮助我像 matplotlib 一样格式化 x 轴:May19、Jun19、Jul19...并且不要在股市休市时创建周末。

最佳答案

您几乎总是可以做的事情与 Nic Wanavit 建议的类似。根据轴上的需要手动设置标签。

特别是在这种情况下,该图看起来有点难看,因为您的数据中有时间跨度没有提供实际数据(在这种情况下为周末),因此 pyplot 将简单地将这些点与 x- 的相应长度连接起来轴。

然后您可以做的只是绘制等距离的数据 - 如果数据是每日的,这是正确的 - 否则考虑使用例如插值它pandas bultin 插值。

为了避免 pyplot 自动检测索引,我必须这样做:

df['plotidx'] = [i for i in range(len(df['close'])):

此处股票的所有收盘价都存储在名为“收盘价”obvsl 的列中。你相应地绘制这个。然后你可以获得通过

创建的所有报价
labels = [item.get_text() for item in ax.get_xticklabels()]

根据需要调整它们

labels[i] = string_for_the_label_no_i

然后使用

让他们回到图表上
ax.xaxis.set_ticklabels(labels)

然后您需要稍微“更新”情节。还要记住,大量调整大小可能会导致标 checkout 现在文档奇怪位置中。这是一种解决方法,但对我来说效果很好,因为绘制彼此距离相等的数据感觉很自然,而不是为周末编造一些数据。

问候

关于python - 使用 matplotlib 在股票图表上跳过周末,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57117084/

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