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

如何解决Plotly共享x轴折线子图出现涂鸦状乱线的问题

Plotly共享x轴折线图乱线问题解决方案

你遇到的乱线问题根源确实是不同过滤分组的x轴分类取值顺序不一致、存在缺失值,Plotly折线默认按传入数据的x顺序连接点,就会出现来回跳转的乱线。你可以按照以下步骤修复:

  • 第一步:预定义统一的x轴分类顺序
    提前提取所有需要用到的KurzName唯一值,按业务需求指定固定排序,避免不同分组的x轴顺序差异:
import pandas as pd

# 提取所有分组的KurzName去重,按你需要的规则排序(示例为字符序,可自定义)
all_kurz_names = pd.concat([
    df_dict_nValueAgg[time_slice]['KurzName'] 
    for time_slice in ['Erste_15_Minuten', 'Zweite_15_Minuten', 'Dritte_15_Minuten', 'Letzte_15_Minuten']
]).unique()
sorted_x = sorted(all_kurz_names)
  • 第二步:对齐所有数据集的x轴顺序,缺失值补空
    封装对齐函数,让每个分组的数据集都按统一的x轴顺序重排,缺失的y值填充为NaN,折线遇到NaN会自动断开,不会乱连:
def align_x_data(raw_df, sorted_x_list):
    # 按统一x顺序重排数据集,缺失值自动填充NaN
    aligned_df = raw_df.set_index('KurzName').reindex(sorted_x_list).reset_index()
    return aligned_df

修改你添加trace的逻辑,使用对齐后的数据集:

# 以Erste_15_Minuten的min值trace为例
aligned_df = align_x_data(df_dict_nValueAgg['Erste_15_Minuten'], sorted_x)
fig.append_trace(go.Scatter(
    x=aligned_df['KurzName'],
    y=aligned_df['min_nValueNorm'],
    name = "min_nValue_Erste_15_Minuten",
    mode='lines+markers',
    connectgaps=False # 显式指定不连接空值,避免异常连线
), row=2, col=1)
# 其余所有trace都按上述逻辑修改即可
  • 第三步:全局指定共享x轴的分类规则
    在x轴配置中显式指定分类顺序,确保所有子图的x轴完全一致:
fig.update_xaxes(
    tickangle=45,
    type='category', # 强制x轴为分类类型,避免Plotly自动识别异常
    categoryorder='array',
    categoryarray=sorted_x # 绑定我们预定义的排序规则
)

完成以上修改后,所有折线的x轴坐标顺序完全统一,缺失点位自动留白,就不会再出现涂鸦状乱线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:09:04