You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

基于Python的Alpha Vantage API:如何遍历股票代码列表生成多个走势图

解决重复生成同一股票走势图的问题

嘿,我一眼就看到问题出在哪啦!你现在的API请求写在了循环外面,而且还提前用了未定义的i变量——这就导致你只获取了一次股票数据,后面循环里反复画的都是这同一份数据,自然全是重复的图啦。

修正后的代码

把API请求移到循环内部,让每次循环都针对当前股票获取数据,这样就能生成每只股票的独立走势图了:

import matplotlib.pyplot as plt
# 确保ts已经是你初始化好的Alpha Vantage客户端对象

tickers = ['PENN', 'MGM', 'DKNG', 'TSLA']

# 直接遍历tickers列表,比用range(len(tickers))更直观
for ticker in tickers:
    # 每次循环都请求当前股票的1分钟级日内数据
    data, meta_data = ts.get_intraday(ticker, interval='1min', outputsize='full')
    plt.figure()
    # 给图表加上股票代码标题,方便区分不同股票
    plt.title(f"Intraday Closing Price - {ticker}")
    plt.plot(data['4. close'])
    plt.xlabel("Time")
    plt.ylabel("Price (USD)")
    plt.show()

关键修正点

  • 把API调用放进循环:这样每一次迭代都会根据当前的ticker参数,请求对应股票的最新数据,而不是一直用第一次获取的旧数据。
  • 直接遍历列表元素:用for ticker in tickers代替for i in range(len(tickers)),代码更简洁易读,还能避免索引错误。
  • 添加图表标题:给每个走势图加上股票代码的标题,能快速区分不同股票的图表,更实用。

原来的代码里,你在循环外就执行了ts.get_intraday(tickers[i], ...),这时候i还没被定义(除非你之前代码里有定义,但即便如此也只会获取一次数据),所以所有循环迭代都在重复绘制同一份数据。把请求移到循环里就完美解决这个问题啦!

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

火山引擎 最新活动