You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从指定起始日期获取时间序列数据并绘制对应图表?

解决指定日期范围获取SPX数据并绘图的问题

嗨,我来帮你搞定这个需求!其实利用pandas的日期索引筛选就能轻松实现,下面分步骤给你讲清楚:

第一步:补全原代码依赖并格式化日期索引

原代码里用到了plt但没导入,而且Alpha Vantage返回的pandas数据框索引默认是字符串格式的日期,我们先把它转换成datetime类型,方便后续筛选:

import pandas as pd
import matplotlib.pyplot as plt
from alpha_vantage.timeseries import TimeSeries

# 初始化Alpha Vantage客户端
ts = TimeSeries(key='YOUR_API_KEY', output_format='pandas')
# 获取SPX每日数据
data, meta_data = ts.get_daily('SPX')
# 将索引转换为datetime类型,方便日期筛选
data.index = pd.to_datetime(data.index)

第二步:筛选指定起始日期的数据

假设你想获取从2023-01-01开始的数据,直接用日期索引做条件筛选即可:

# 自定义你的起始日期
start_date = '2023-01-01'
# 筛选出起始日期及之后的所有数据
filtered_data = data[data.index >= start_date]

第三步:基于筛选后的数据绘制收盘价时间序列

现在用筛选后的数据集绘图,就能只展示指定日期后的走势了:

# 绘制筛选后的收盘价曲线,可自定义图表标题
filtered_data['4. close'].plot(title='SPX Close Price (From 2023-01-01)')
# 调整图表布局避免元素被截断
plt.tight_layout()
# 显示最终图表
plt.show()

额外技巧:直接设置绘图的x轴范围

如果你不想提前筛选数据,也可以在绘图后通过plt.xlim()指定显示的日期范围,效果类似:

# 先绘制全部数据
data['4. close'].plot()
# 设置x轴起始日期,None表示保留原数据的结束日期
plt.xlim(pd.to_datetime('2023-01-01'), None)
plt.tight_layout()
plt.show()

不过更推荐提前筛选数据的方式,这样可以减少不必要的数据处理,效率更高~

内容的提问来源于stack exchange,提问作者JustOneMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:07:50