簡體   English   中英

Plotly:如何在 Plotly 中繪制帶有漸變顏色的矩形?

[英]Plotly: How to plot rectangle with gradient color in Plotly?

像矩形這樣的形狀在 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),
)]

但我希望盒子不要有純色填充,而是要有平滑的顏色漸變。

我的猜測是答案是一個簡單的“不支持”,但也許其他人更清楚。

如果我錯了,有人會糾正我,但我認為不,沒有直接的實現來填充漸變形狀。 但是要獲得類似的結果,您可以在矩形內繪制多條線,指定遞減的 rgb 值。

例如,我在文檔代碼中的第一個矩形定義之后添加了這個 for 循環(還將矩形填充顏色更改為白色)。

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

結果是:

在此處輸入圖片說明

我知道這是不切實際的,它可以增加一點運行時間,但如果你只關心美感,它就可以了。

查看 Edoardo Guerrieros 的好建議,您還可以考慮使用rgba(0,0,0,0) ,其中最后一個數字設置顏色的不透明度。 這樣,您將使背景逐漸出現在矩形后面:

在此處輸入圖片說明

完整代碼:

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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM