Plotly: Как предотвратить, чтобы внешнее кольцо фигуры солнечных лучей было более светлым оттенком? - PullRequest
1 голос
/ 30 апреля 2020

Всякий раз, когда я делаю диаграмму солнечных лучей Plotly (я использую Python), крайний «круг» или кольцо намного легче, чем остальные кольца солнечных лучей. Как я могу сделать так, чтобы оттенок этого кольца был таким же, как и на остальной части графика?

Как видите, сегмент, помеченный Bb5, светлее остальных.

Я использую стандартный код солнечного луча Plotly. Простой пример (в любом случае будет светлее):

import plotly.graph_objects as go

fig =go.Figure(go.Sunburst(
    labels=["Eve", "Cain", "Seth", "Enos", "Noam", "Abel", "Awan", "Enoch", "Azura"],
    parents=["", "Eve", "Eve", "Seth", "Seth", "Eve", "Eve", "Awan", "Eve" ],
    values=[10, 14, 12, 10, 2, 6, 6, 4, 4],
))
# Update layout for tight margin
# See https://plotly.com/python/creating-and-updating-figures/
fig.update_layout(margin = dict(t=0, l=0, r=0, b=0))

fig.show()

1 Ответ

1 голос
/ 30 апреля 2020

Вы ищете:

leaf=dict(opacity=1)

Устанавливает непрозрачность листьев. Для указанной цветовой шкалы по умолчанию используется 1, в противном случае по умолчанию устанавливается 0.7.

График 1: leaf=dict(opacity=1)

enter image description here

Теперь сравните это с:

График 2: leaf=None

Теперь непрозрачность по умолчанию равна 0.7

enter image description here

И посмотрите, что происходит, когда вы указали значение для colorscale:

График 3 : colorscale='RdBu'

Если вы не укажете аргумент листа, для листьев по умолчанию значение непрозрачности = 1 для листьев:

enter image description here

И, наконец, вы можете использовать оба способа с colorscale и leaf=dict(opacity=0.2). Я просто устанавливаю непрозрачность очень низко, чтобы прояснить ситуацию:

enter image description here

Вот полный код для случая, который вы искали:

import plotly.graph_objects as go

fig =go.Figure(go.Sunburst(
    labels=["Eve", "Cain", "Seth", "Enos", "Noam", "Abel", "Awan", "Enoch", "Azura"],
    parents=["", "Eve", "Eve", "Seth", "Seth", "Eve", "Eve", "Awan", "Eve" ],
    values=[10, 14, 12, 10, 2, 6, 6, 4, 4],
    leaf=dict(opacity=1),
    #marker=dict(colorscale='RdBu')
))

fig.update_layout(margin = dict(t=0, l=0, r=0, b=0))

fig.show()
...