如何基于另一条折线的索引修改Plotly折线的指定区段颜色
实现方案
你需要先确定预测值的起始坐标,再将实际值折线拆分为两段分别设置颜色即可,修改后的可运行代码如下:
import pandas as pd import plotly.graph_objects as go from plotly.offline import plot x_data = out.index # 定位预测值第一个非空的起始位置 pred_start_idx = out[out['Predicted_Values'].notna()].index[0] # 预测起始前的实际值:保留蓝色 trace_actual_before = go.Scatter( x=out.loc[:pred_start_idx].index, y=out.loc[:pred_start_idx, 'Actual_Values'], name="Actual Values", line=dict(color='blue') ) # 预测起始后的实际值:切换为自定义颜色,示例为绿色,关闭图例避免重复 trace_actual_after = go.Scatter( x=out.loc[pred_start_idx:].index, y=out.loc[pred_start_idx:, 'Actual_Values'], name="Actual Values", line=dict(color='green'), showlegend=False ) # 预测值折线:保持红色 trace_pred = go.Scatter( x=x_data, y=out['Predicted_Values'], name="Predictions", line=dict(color='red') ) traces = [trace_actual_before, trace_actual_after, trace_pred] layout = go.Layout( xaxis=dict( autorange=True ), yaxis=dict( autorange=True ) ) fig = go.Figure(data=traces, layout=layout) plot(fig, include_plotlyjs=True)
如果你的预测值序列是从固定索引位开始而非通过NaN判断,可直接给pred_start_idx赋值对应索引即可,切换后的颜色可自行修改trace_actual_after中color参数的取值。
内容的提问来源于stack exchange,提问作者Pardeep Kumar
相关产品推荐
相关产品推荐

