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

绘制多列DataFrame:列名为X轴、行(国家)为图例的折线图

没问题!我来帮你搞定这个折线图的绘制~

绘制指定格式的DataFrame折线图

首先咱们明确核心需求:把年份(列名)作为X轴,各列数值作为Y轴,国家名称作为图例,生成展示数据变化的折线图。我用Python的pandas+matplotlib来演示,这是最常用且易上手的组合。

步骤1:准备示例DataFrame

先模拟一个符合你需求的数据集,比如不同国家历年的GDP数据:

import pandas as pd

# 创建示例DataFrame:行=国家,列=年份
data = {
    "2018": [1.2, 2.3, 0.9],
    "2019": [1.5, 2.5, 1.1],
    "2020": [1.1, 2.1, 0.8],
    "2021": [1.6, 2.7, 1.2],
    "2022": [1.8, 2.9, 1.4]
}
df = pd.DataFrame(data, index=["中国", "美国", "日本"])
print(df)

运行后会得到这样的结构:

2018  2019  2020  2021  2022
中国    1.2   1.5   1.1   1.6   1.8
美国    2.3   2.5   2.1   2.7   2.9
日本    0.9   1.1   0.8   1.2   1.4

步骤2:绘制折线图

这里给你两种实现方式,按需选择:

方式一:pandas直接绘图(最简单)

pandas的DataFrame自带plot.line()方法,一行代码就能满足需求,核心是转置DataFrame:

import matplotlib.pyplot as plt

# 转置后,年份变成X轴,国家自动作为图例
df.T.plot(kind='line', figsize=(10, 6))
plt.title('各国历年GDP变化')
plt.xlabel('年份')
plt.ylabel('GDP(万亿美元)')
plt.legend(title='国家')
plt.grid(True)
plt.show()

为什么要转置?因为默认pandas会把行作为X轴,转置后原来的列(年份)成为X轴,原来的行(国家)变成不同的折线,完美匹配你的要求!

方式二:matplotlib手动绘制(更灵活)

如果需要自定义折线样式、颜色、标记等细节,可以手动循环绘制:

import matplotlib.pyplot as plt

plt.figure(figsize=(10, 6))

# 遍历每个国家,逐个绘制折线
for country in df.index:
    plt.plot(df.columns, df.loc[country], label=country, marker='o', linewidth=2)

# 添加图表元素
plt.title('各国历年GDP变化', fontsize=14)
plt.xlabel('年份', fontsize=12)
plt.ylabel('GDP(万亿美元)', fontsize=12)
plt.legend(title='国家', fontsize=10)
plt.grid(alpha=0.3)
plt.show()

这种方式可以给每个国家设置独特的标记(比如marker='o'是圆圈标记)、线条宽度,自由度更高。

关键注意点

  • 如果你的原始DataFrame结构是年份为行,国家为列,那直接用df.plot.line()就行,不需要转置,记得根据自己的实际数据结构调整。
  • 要是需要添加更多细节(比如折线颜色、图例位置、数据标签),随时调整代码里的参数就行。

这样就能轻松生成你想要的折线图啦,有其他细节问题随时提!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:11:36