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

如何将Pandas DataFrame的列名作为X轴绘制多折线图

实现方案

核心问题原因

你之前转置后效果不符合预期,大概率是DataFrame的列名默认是字符串类型,转置后X轴会按照字符串规则排序(比如1.0之后紧跟10.0,而非2.0),导致折线走势异常。

具体实现步骤

  • 第一步:将1.0-39.0对应的列名转换为浮点型,保证X轴按数值顺序排列
  • 第二步:转置DataFrame后直接调用内置绘图方法即可

完整代码示例

import pandas as pd
import matplotlib.pyplot as plt

# --------------- 1. 数据预处理 ---------------
# 假设你的原始DataFrame变量名为df
# 将列名转换为浮点型,避免X轴顺序错乱
df.columns = df.columns.astype(float)

# --------------- 2. 绘制折线图 ---------------
# 转置后绘图:转置后原列名变为索引(即X轴),原每行变为1个系列(即每条折线)
ax = df.T.plot(
    kind='line',
    figsize=(12, 6), # 自定义画布尺寸
    xlabel='X轴数值(1.0-39.0)',
    ylabel='对应数值',
    title='多折线对比图'
)

# 可选:调整X轴刻度避免拥挤,每5个单位显示1个刻度
plt.xticks(range(1, 40, 5))
# 可选:调整图例位置避免遮挡
plt.legend(bbox_to_anchor=(1.01, 1), loc='upper left')

plt.tight_layout()
plt.show()

验证示例

如果用模拟数据测试,可参考如下代码验证效果:

# 模拟你的DataFrame结构
df = pd.DataFrame(
    [
        [-0.004640, 0.00231, 0.00512, -0.00123, 0.00367],
        [0.00312, -0.00189, 0.00421, 0.00087, -0.00215]
    ],
    columns=['1.0', '2.0', '3.0', '4.0', '5.0'],
    index=['组1', '组2']
)
# 后续处理同上,即可得到两条对应折线

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:54:06