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

基于DataFrame绘制多线图:按NFL球队拆分展示年度薪资变化

多折线按球队拆分绘制方案

你之前只输出单条折线的原因是直接对长格式数据集指定x、y绘图时,pandas默认将所有数据点按x轴顺序串联,没有按球队字段做分组拆分,两种常用实现方案如下:

方案1:仅用pandas内置plot功能实现

无需额外安装第三方绘图库,只需要将长表转为宽表即可:

  • 先预处理薪资字段:去除$符号后转为数值类型,否则字符串格式无法正常绘制数值轴
  • 通过pivot方法将数据集转为以年份为索引、球队为列、薪资为值的宽格式
  • 直接调用plot方法,pandas会自动为每一列(每支球队)生成独立折线

代码示例:

import pandas as pd

# 此处替换为你自己的数据集读取代码,示例仅为模拟数据
df = pd.DataFrame({
    "年份": [2015,2015,2015,2016,2016,2016],
    "球队": ["迈阿密", "丹佛", "洛杉矶", "迈阿密", "丹佛", "洛杉矶"],
    "薪资": ["$100", "$150", "$125", "$125", "$100", "$100"]
})

# 薪资字段转数值
df["薪资"] = df["薪资"].str.replace("$", "", regex=False).astype(int)

# 长表转宽表
df_wide = df.pivot(index="年份", columns="球队", values="薪资")

# 绘图
df_wide.plot(kind="line", figsize=(10, 6), xlabel="年份", ylabel="总薪资", title="NFL各球队年度总薪资走势")

方案2:使用seaborn实现(无需转表,配置更灵活)

如果可以引入seaborn库,无需转换表结构,直接通过hue参数指定分组维度即可:

import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt

# 薪资预处理逻辑和方案1一致
df["薪资"] = df["薪资"].str.replace("$", "", regex=False).astype(int)

# 直接绘图,hue参数按球队拆分折线
plt.figure(figsize=(10, 6))
sns.lineplot(data=df, x="年份", y="薪资", hue="球队", marker="o")
plt.title("NFL各球队年度总薪资走势")
plt.xlabel("年份")
plt.ylabel("总薪资")
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 02:09:02