Plotly:如何在Plotly中使用渐变色绘制矩形?

2024-05-06 09:20:29 发布

您现在位置:Python中文网/ 问答频道 /正文

像矩形这样的形状在绘图时可以有平滑的颜色渐变吗

我将带有实心填充颜色的形状定义为:

shapes=[dict(
    type='rect',
    xref='x',
    yref='paper',
    x0=box_from, x1=box_to,
    y0=0, y1=1,
    fillcolor='Green',
    opacity=0.07,
    layer='below',
    line=dict(width=0),
)]

但是我不希望盒子有纯色填充,而是有平滑的颜色渐变

我猜答案是简单的“不支持”,但也许其他人更清楚


Tags: 文档httpscombox绘图定义颜色plotly
2条回答
在EdoARDO GuriReROS优秀建议中,你也可以考虑使用{{CD1}},其中最后一个数字设置了颜色的不透明度。这样,您将使背景逐渐显示在矩形后面:

enter image description here

完整代码:

import plotly.graph_objs as go

fig=go.Figure()

for i in range(100):
    opac = 1-(i/100)
    fig.add_shape(type='line',
    xref="x",
    yref="y",
    x0=2.5,
    x1=3.5,
    y0=i*(2/100),
    y1=i*(2/100),
    line=dict(color='rgba({}, {}, {}, {})'.format((0),(0),(255),(opac)),
              width=5,))



fig.update_xaxes(range=[2, 4])
fig.update_yaxes(range=[-1, 2.5])

fig.show()

如果我错了,有人会纠正我,但我认为不,没有直接的实现来填充渐变形状。但为了获得类似的结果,可以在矩形内绘制几条线,指定递减的rgb值

例如,我在文档代码中的第一个矩形定义之后添加了这个For循环(还将矩形fillcolor更改为白色)

for i in range(100):
    fig.add_shape(type='line',
    xref="x",
    yref="y",
    x0=2.5,
    x1=3.5,
    y0=i*(2/100),
    y1=i*(2/100),
    line=dict(
                color='rgb({}, {}, {})'.format((i/100*255),(i/100*255),(i/100*255)),
                width=3,
            ))

结果是:

enter image description here

我知道这是不切实际的,它可以增加一点运行时间,但如果你只关心美观,它会起作用

相关问题 更多 >