用yfinance拉取股票数据并画出三个股票趋势图

用yfinance拉取了十只股票数据之后,要画三种不同的趋势,请问该如何画?每一种趋势图都是十只股票集合。

好的具体需求:?
可以参考:https://peakchen.blog.csdn.net/article/details/131457983?spm=1001.2014.3001.5502

  • 文章:通过yfinance访问金融数据—获取数据 中也许有你想要的答案,请看下吧
  • 除此之外, 这篇博客: Python|一行代码获取股票数据中的 yfinance的安装 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • yfinance作为一种数据分析中常用的数据获取库,自然需要一些前置库的安装,其前置库和本身的安装代码如下:

    pip install numpy
    pip install pandas
    pip install requests
    pip install yfinance
    
  • 以下回答由chatgpt基于相关博客总结生成:

    首先,确保已经安装了yfinance库以及其前置库(numpy、pandas和requests)。

    接下来,我们可以按照以下步骤来绘制三个不同的趋势图:

    步骤1: 导入所需的库

    import yfinance as yf
    import matplotlib.pyplot as plt
    

    步骤2: 定义要拉取的股票代码列表

    symbols = ['AAPL', 'GOOGL', 'AMZN', 'MSFT', 'FB', 'JPM', 'BAC', 'WMT', 'V', 'JNJ']
    

    步骤3: 使用yfinance库拉取股票数据

    data = yf.download(symbols, start='2021-01-01', end='2021-12-31')
    

    在上述代码中,我们指定了要拉取的股票代码列表、数据的起始日期和结束日期。你可以根据需要自行修改这些参数。

    步骤4: 绘制第一个趋势图

    plt.figure(figsize=(10, 6))
    for symbol in symbols:
        plt.plot(data['Adj Close'][symbol], label=symbol)
    plt.title('Trend Chart 1')
    plt.xlabel('Date')
    plt.ylabel('Price')
    plt.legend()
    plt.grid(True)
    plt.show()
    

    上述代码中,我们使用了Matplotlib库来绘制折线图。在循环中,我们遍历股票代码列表,并按照收盘价格('Adj Close')进行绘制。我们还设置了图表的标题、x轴和y轴标签,以及图例和网格线。

    步骤5: 绘制第二个趋势图

    plt.figure(figsize=(10, 6))
    for symbol in symbols:
        plt.plot(data['Volume'][symbol], label=symbol)
    plt.title('Trend Chart 2')
    plt.xlabel('Date')
    plt.ylabel('Volume')
    plt.legend()
    plt.grid(True)
    plt.show()
    

    在第二个趋势图中,我们绘制了股票的成交量('Volume')。

    步骤6: 绘制第三个趋势图

    plt.figure(figsize=(10, 6))
    for symbol in symbols:
        daily_returns = data['Adj Close'][symbol].pct_change().fillna(0)
        cumulative_returns = (1 + daily_returns).cumprod() - 1
        plt.plot(cumulative_returns, label=symbol)
    plt.title('Trend Chart 3')
    plt.xlabel('Date')
    plt.ylabel('Cumulative Returns')
    plt.legend()
    plt.grid(True)
    plt.show()
    

    在第三个趋势图中,我们计算了每日收益率,并计算了累积收益率。

    至此,我们通过绘制三个不同的趋势图,展示了这十只股票的走势。

    注意:为了让代码更具可读性,我将每个步骤拆分成不同的代码块。你可以将这些代码块整合到一个完整的脚本中。

    如果你已经按照上述步骤实施了代码,并成功地绘制了三个不同的趋势图,恭喜你!如果你遇到了任何问题或者需要进一步的帮助,请随时提问。