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

Pandas如何实现单X列与所有Y列数据同图绘制

Pandas 单X轴批量绘制多Y列图表方法

用Pandas原生DataFrame绘图接口即可实现单X列对应所有Y列的同图绘制,无需逐列循环,适配30+列的批量绘制场景。

  • 前置依赖安装
    执行命令安装所需库:pip install pandas openpyxl matplotlib
  • 完整实现代码
import pandas as pd
import matplotlib.pyplot as plt

# 读取目标Excel工作表,替换为实际文件路径、工作表名
df = pd.read_excel("你的数据文件.xlsx", sheet_name="目标工作表名称")

# 批量绘图:指定公共X列,其余数值列自动作为Y系列绘制
ax = df.plot(
    x="X列实际列名", # 替换为表中X列的列名,例如"采样时间""序号"
    figsize=(14, 7),
    grid=True,
    colormap="tab20", # 高区分度多色系色卡,适配30条线的颜色区分
    linewidth=1.2,
    alpha=0.8 # 调整线条透明度,减少多线重叠的辨识度问题
)

# 基础样式配置
ax.set_xlabel("X轴名称")
ax.set_ylabel("Y轴数值")
ax.set_title("多列数据同X轴对比图")

# 多系列图例放在图表外侧,避免遮挡数据
plt.legend(bbox_to_anchor=(1.02, 1), loc="upper left", borderaxespad=0)
plt.tight_layout() # 自动适配布局,防止标签、图例截断

# 展示或保存图表
plt.show()
# plt.savefig("输出图表.png", dpi=300, bbox_inches="tight")

若表中存在不需要绘制的非X列,无需手动枚举全部30个Y列名,只需在绘图前筛选子集即可:执行df = df[["X列名"] + 待绘制Y列名列表]后再调用plot方法。

  • 实用优化技巧
    • X列为时间格式时Pandas会自动识别并格式化时间刻度,无需额外处理
    • 若默认色卡区分度不足,可替换colormap参数为tab20b/viridis等其他Matplotlib内置色卡
    • 数据存在空值时Pandas会自动跳过空点连线,无需提前做填充处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:24:35