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

如何使用Plotly将两个CSV数据集的折线图合并到同一张图中

双DataFrame折线合并到同一Figure的实现方法

你原本的写法不支持直接传入多个DataFrame同时指定不同的x/y列,可通过以下两种方式实现需求:

  • 方案1:使用Plotly Express追加轨迹
    单独生成两个折线对象后,将第二个的轨迹追加到第一个Figure中即可,示例代码如下:
import pandas as pd
import plotly.express as px

# 原有数据读取逻辑保持不变
df = pd.read_csv("test.csv",
             sep='\t',skiprows=range(9),names=['A', 'B', 'C','D'])
df2 = pd.read_csv("LoadMatch_Limit.csv",skiprows=range(1),names=['X','Y'])

# 生成第一张折线图
fig = px.line(df, x='A', y='D', name='test数据集')
# 追加第二条折线的轨迹
fig.add_trace(px.line(df2, x='X', y='Y', name='LoadMatch数据集').data[0])

# 可选:自定义图表样式
fig.update_layout(
    xaxis_title='公共x轴',
    yaxis_title='公共y轴',
    title='双数据集折线对比'
)
fig.show()
  • 方案2:使用Plotly Graph Objects实现
    如果需要更灵活的样式自定义,可直接用底层的Graph Objects接口手动添加轨迹:
import pandas as pd
import plotly.graph_objects as go

# 原有数据读取逻辑保持不变
df = pd.read_csv("test.csv",
             sep='\t',skiprows=range(9),names=['A', 'B', 'C','D'])
df2 = pd.read_csv("LoadMatch_Limit.csv",skiprows=range(1),names=['X','Y'])

fig = go.Figure()
# 添加第一条折线
fig.add_trace(go.Scatter(
    x=df['A'], 
    y=df['D'], 
    mode='lines', 
    name='test数据集'
))
# 添加第二条折线
fig.add_trace(go.Scatter(
    x=df2['X'], 
    y=df2['Y'], 
    mode='lines', 
    name='LoadMatch数据集'
))

# 自定义图表样式
fig.update_layout(
    xaxis_title='公共x轴',
    yaxis_title='公共y轴',
    title='双数据集折线对比'
)
fig.show()

如果两个数据集的x轴取值范围差异较大,可配置双x轴分别展示,只需在添加第二条轨迹时指定xaxis='x2',再通过update_layout配置第二根x轴的位置、样式即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:15:02