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

如何用pandas和plotly将多组不同时间轴的CSV测量数据绘制在同一图表

Plotly合并多数据集时序曲线解决方案

核心原理

Plotly Express生成的每一个图表对象都包含轨迹(data)属性,你可以通过add_trace方法将多个数据集的轨迹追加到同一张画布上,也可以先合并数据集后一次性绘图,两种方案都支持不同时间戳的数据集混用。

方案1:直接合并已有图表轨迹

适合已经单独生成了两个图表,需要快速合并的场景:

import pandas as pd
import plotly.express as px

# 读取数据时自动解析时间戳
ds1 = pd.read_csv('ds1.csv', parse_dates=['timestamp'])
ds2 = pd.read_csv('ds2.csv', parse_dates=['timestamp'])

# 生成基础画布
fig = px.line(ds1, x='timestamp', y='value', title='多设备温度测量曲线', labels={'value': '测量数值'})
# 追加第二个数据集的轨迹
fig.add_trace(px.line(ds2, x='timestamp', y='value').data[0])

# 自定义图例名称(可选)
fig.data[0].name = 'Temp1'
fig.data[1].name = 'Temp2'
fig.update_layout(showlegend=True)

fig.show()

方案2:合并数据集后一次性绘图

代码更简洁,自动生成分类图例,适合多数据集批量绘图场景:

import pandas as pd
import plotly.express as px

# 读取数据
ds1 = pd.read_csv('ds1.csv', parse_dates=['timestamp'])
ds2 = pd.read_csv('ds2.csv', parse_dates=['timestamp'])

# 给数据集加分类标识
ds1['设备类型'] = 'Temp1'
ds2['设备类型'] = 'Temp2'

# 纵向合并两个数据集
all_data = pd.concat([ds1, ds2], ignore_index=True)

# 直接按分类字段绘制不同颜色的曲线
fig = px.line(
    all_data, 
    x='timestamp', 
    y='value', 
    color='设备类型',
    title='多设备温度测量曲线',
    labels={'value': '测量数值'}
)

fig.show()

注意事项

如果读取csv后时间戳未被正确识别为时间类型,可手动转换:

ds1['timestamp'] = pd.to_datetime(ds1['timestamp'])
ds2['timestamp'] = pd.to_datetime(ds2['timestamp'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:24:01