Plotly:如何在Plotly中绘制具有渐变颜色的矩形?

问题描述 投票:2回答:2

矩形等形状在Plotly中可以具有平滑的颜色渐变吗?

我将实心填充颜色定义为:

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),
)]

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

我的猜测是,答案很简单,“不支持”,但也许其他人知道更好。

plotly
2个回答
2
投票
如果我错了,有人会纠正我,但我认为不,没有直接的实现可以用渐变填充形状。但是,要获得相似的结果,您可以在矩形内绘制几条线,以指定递减的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

我知道这是不切实际的,它可能会增加运行时间,但是如果您只在乎美学,它就可以完成工作。


0
投票
[查看Edoardo Guerrieros的出色建议,您也可以考虑使用rgba(0,0,0,0),其中最后一个数字用于设置颜色的不透明度。这样,您将使背景逐渐出现在矩形的后面:

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()
© www.soinside.com 2019 - 2024. All rights reserved.