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

如何自动为Matplotlib多股票折线图添加Stock Ticker标签

解决方案:自动分组绘制带股票代码标签的股价折线图

原代码问题分析

  • 未按Stock Ticker分组,所有数据被绘制为单条折线
  • 坐标轴标签设置错误:重复使用set_label,应分别用set_xlabel和set_ylabel
  • 未处理日期格式,可能导致x轴显示混乱

修正后代码

import matplotlib.pyplot as plt
import pandas as pd 

# 读取数据并标准化日期格式
df = pd.read_csv('Stock Data.csv')
df['Date'] = pd.to_datetime(df['Date'])  # 转换为datetime类型,优化时间轴显示

# 创建绘图对象
fig, ax = plt.subplots(figsize=(5, 2.7), layout='constrained')

# 按股票代码分组,自动遍历绘制折线
for ticker, group in df.groupby('Stock Ticker'):
    ax.plot(group['Date'], group['Close'], label=ticker)

# 设置图表元素
ax.set_xlabel('Date')
ax.set_ylabel('Close Price')
ax.set_title('Airline Stock Returns (2022)')

# 显示自动生成的图例(标签为股票代码)
ax.legend()

# 可选:旋转x轴日期标签,避免重叠
plt.xticks(rotation=45)

plt.show()

关键说明

  • 自动分组逻辑:df.groupby('Stock Ticker')会自动识别所有唯一股票代码,后续新增公司无需修改代码,直接适配
  • 标签自动生成:循环中的ticker变量就是当前分组的股票代码,直接作为plot的label参数,图例会自动对应每条折线
  • 日期处理:转换为datetime类型后,Matplotlib会自动优化x轴的日期刻度和显示顺序
  • 坐标轴标签修正:用set_xlabel和set_ylabel分别设置x、y轴的标签,替代原代码的错误用法

额外优化建议

  • 如果CSV日期格式非标准,可在pd.to_datetime中指定格式,例如:pd.to_datetime(df['Date'], format='%Y/%m/%d')
  • 若图例遮挡图表,可调整位置:ax.legend(loc='upper right') 或 ax.legend(bbox_to_anchor=(1.02, 1), loc='upper left') 将图例放在图外

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 04:17:22