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

Matplotlib绘制ALB股票收盘价图空白报错求助

问题分析与解决

问题原因

你错误地直接对yf.Ticker对象ALBINFO使用['Close']索引——ALBINFO是Yahoo Finance的股票信息对象,并非存储历史数据的DataFrame,它本身没有Close列,所以调用ALBINFO['Close']会失败,导致绘图无数据,最终出现空白图表。

修复步骤

  1. 存储历史数据到DataFrame:调用ALBINFO.history(period="2y")时,将返回的结果赋值给一个变量(比如alb_historical_data),这个变量才是包含日期、收盘价等字段的结构化DataFrame。
  2. 引用DataFrame的Close列绘图:绘图时使用这个DataFrame的Close列即可获取收盘价数据。

修正后的完整代码

# imports
import pandas as pd
import yfinance as yf
from datetime import date, timedelta
from matplotlib import pyplot as plt
import numpy as np
plt.style.use('fivethirtyeight') 

# 获取Albemarle股票信息与历史数据
ALBINFO = yf.Ticker("ALB")
# 将2年历史数据存储为DataFrame
alb_historical_data = ALBINFO.history(period="2y")
print(alb_historical_data)

# 绘制收盘价走势
plt.figure(figsize = (12.2,4.5))
# 使用DataFrame中的Close列数据
plt.plot(alb_historical_data['Close'], label = 'Close')
plt.xticks(rotation = 45)
plt.title('ALB Close Price History (2 Years)')
plt.xlabel('Date')
plt.ylabel('Price USD')
plt.legend()  # 可选:添加图例显示标签
plt.show()

额外说明

  • 原代码中print(ALBINFO.history(period="2y"))仅打印数据但未保存,导致后续无法调用这些数据用于绘图。
  • 添加plt.legend()可以让图表显示图例,提升可读性。

内容的提问来源于stack exchange,提问作者John H.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:35:56