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

Plotly折线图能否实现'tozero'反向填充?是否支持'tomax'?

Plotly折线图反向填充(tozero的反向)解决方案

Plotly里没有直接的fill: "tomax"参数,但可以通过以下两种方式实现你要的填充效果:

方法1:利用隐藏的顶部参考线 + tonexty填充

  1. 先算出你数据里的y轴最大值(或者你想要填充到的固定顶部值)
  2. 添加一条隐藏的折线trace,y值全部设为这个最大值,设置visible: false
  3. 把主折线的fill属性设为"tonexty",并通过fillcolor指定填充颜色

举个Python的代码示例:

import plotly.graph_objects as go
import numpy as np

# 原始数据
x = np.arange(10)
y = np.random.randint(1, 10, size=10)
max_y = y.max()  # 获取y最大值

# 主折线trace
fig = go.Figure()
fig.add_trace(go.Scatter(
    x=x,
    y=y,
    name='主数据',
    fill='tonexty',  # 填充到下一个trace
    fillcolor='rgba(0,100,200,0.2)'
))

# 隐藏的顶部参考线trace
fig.add_trace(go.Scatter(
    x=x,
    y=[max_y]*len(x),
    name='顶部参考线',
    visible=False,  # 隐藏这条线
    line=dict(color='rgba(0,0,0,0)')  # 透明线条
))

fig.show()

方法2:Plotly Express适配方案

如果用Plotly Express,也可以套用相同逻辑,先构造包含顶部线的数据再设置填充:

import plotly.express as px
import pandas as pd
import numpy as np

x = np.arange(10)
y = np.random.randint(1, 10, size=10)
max_y = y.max()

# 构造包含顶部线的数据
df = pd.DataFrame({'x': x, 'y': y, 'top_y': [max_y]*len(x)})

fig = px.line(df, x='x', y=['y', 'top_y'])
# 隐藏顶部线trace
fig.data[1].visible = False
# 设置主折线填充到顶部线
fig.data[0].fill = 'tonexty'
fig.data[0].fillcolor = 'rgba(0,100,200,0.2)'

fig.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 05:42:31