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

Python使用Plotly绘制折线图时如何添加趋势线

Plotly 时序图添加趋势线实现方案

你预期效果中的平滑趋势线为局部加权回归(LOWESS)趋势线,适配时序类水位数据的走势展示,不需要手动编写拟合逻辑,直接在你现有go.Figure代码基础上追加对应轨迹即可,不需要重构已有绘图逻辑。


可直接运行的修改后代码

import plotly.graph_objects as go
import plotly.express as px
import pandas as pd

# 预处理:确保时间字段为标准datetime格式,避免趋势线计算异常
df_wl_1['timestamp_(utc+5)'] = pd.to_datetime(df_wl_1['timestamp_(utc+5)'])

fig = go.Figure()
# 保留你原有的原始水位折线绘制逻辑,微调透明度和线宽区分层次
fig.add_trace(go.Scatter(
    x=df_wl_1['timestamp_(utc+5)'], 
    y=df_wl_1['water_level_(m)_-_sensor_2'],
    mode='lines',
    name='Water level 1',
    line=dict(width=1),
    opacity=0.6
))
fig.add_trace(go.Scatter(
    x=df_wl_1['timestamp_(utc+5)'], 
    y=df_wl_1['water_level_(m)_-_sensor_3'],
    mode='lines',
    name='Water level 2',
    line=dict(width=1),
    opacity=0.6
))

# 为传感器2添加平滑趋势线
trend_sensor2 = px.scatter(
    df_wl_1,
    x='timestamp_(utc+5)',
    y='water_level_(m)_-_sensor_2',
    trendline="lowess",
    trendline_options=dict(frac=0.2)
).data[1]  # 提取px自动计算生成的趋势线轨迹
trend_sensor2.line.width = 3
trend_sensor2.name = 'Water level 1 Trend'
fig.add_trace(trend_sensor2)

# 为传感器3添加平滑趋势线
trend_sensor3 = px.scatter(
    df_wl_1,
    x='timestamp_(utc+5)',
    y='water_level_(m)_-_sensor_3',
    trendline="lowess",
    trendline_options=dict(frac=0.2)
).data[1]
trend_sensor3.line.width = 3
trend_sensor3.name = 'Water level 2 Trend'
fig.add_trace(trend_sensor3)

# 可选布局调整,对齐你给出的预期展示效果
fig.update_layout(
    xaxis_title='Timestamp (UTC+5)',
    yaxis_title='Water Level (m)',
    hovermode='x unified'
)

fig.show()

常用参数调整

  • 趋势线类型切换:
    • 需要直线型线性趋势:将trendline="lowess"替换为trendline="ols",无需额外传trendline_options
    • 需要固定窗口滑动平均趋势:将参数改为trendline="rolling", trendline_options=dict(window=24),window为滑动窗口包含的时间点数量
  • 平滑度调整:LOWESS模式下的frac参数取值范围为0~1,值越大趋势线越平滑,值越小越贴近原始数据波动,0.2为水文时序数据的常用经验值
  • 视觉区分:可以通过调整原始折线的opacity、线宽,以及趋势线的颜色、线宽,拉开原始数据和趋势线的视觉层次,和示例效果保持一致。

注意事项

必须先将时间列转换为pandas标准datetime格式再进行趋势线计算,否则时间字段会被识别为字符串,导致趋势线计算逻辑出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 02:24:21