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

如何使用pandas绘制示例图中的四列数据图表 现有函数仅支持双变量

四列数据pandas可视化实现方案

pandas的绘图接口封装自matplotlib,原生支持多列数据同时绘制,无需局限于双变量传入,以下是不同场景的实现方式:

场景1:单X轴对应多Y列(折线/柱状/面积图等)

如果你的四列数据中1列为X轴维度,剩余3列为需要对比的Y值,直接将需要展示的Y列以列表形式传入y参数即可:

import pandas as pd
import matplotlib.pyplot as plt

# 构造四列示例数据,可替换为你自己的数据集
df = pd.DataFrame({
    "时间列": range(1, 21),
    "指标A": [i*2 + pd.np.random.randint(-3,3) for i in range(20)],
    "指标B": [i*1.5 + pd.np.random.randint(-2,4) for i in range(20)],
    "指标C": [i + pd.np.random.randint(-5,2) for i in range(20)]
})

# 多Y列同时绘制,kind可替换为bar/area等你需要的图表类型
df.plot(x="时间列", y=["指标A", "指标B", "指标C"], kind="line")
plt.show()

场景2:多组X-Y对应关系(如散点图多系列)

如果需要绘制多组不同的X-Y映射的散点图,只需复用同一个轴对象(ax)多次调用plot方法即可:

# 第一组X-Y绘制,生成轴对象
ax = df.plot(kind="scatter", x="指标A", y="指标B", color="blue", label="A-B对应关系")
# 后续组都传入已生成的ax参数,即可在同一张图叠加
df.plot(kind="scatter", x="指标A", y="指标C", color="red", label="A-C对应关系", ax=ax)
plt.show()

场景3:双Y轴展示四列数据

如果四列数据量级差异较大,可以拆分双Y轴分别承载不同量级的序列,避免低量级数据被挤压:

fig, ax1 = plt.subplots()
# 左侧Y轴绘制前两个序列
df.plot(x="时间列", y=["指标A", "指标B"], ax=ax1)
ax1.set_ylabel("低量级指标单位")

ax2 = ax1.twinx()
# 右侧Y轴绘制剩余序列
df.plot(x="时间列", y=["指标C"], ax=ax2, color="orange")
ax2.set_ylabel("高量级指标单位")
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 22:36:04