Как захватить легенды по кликам в Plotly?Python

Программы на Python
Ответить
Anonymous
 Как захватить легенды по кликам в Plotly?

Сообщение Anonymous »

Я создал радиолокационную диаграмму, на которой отображаются данные, называемые зонами. Я не могу создать функцию обратного вызова, которая возвращает легенды, видимые в данный момент в результате действия пользователя над легендой. Когда пользователь отменяет выбор элементов легенды, график хорошо их скрывает, но мне нужно зафиксировать то, что осталось.
По сути, я печатаю имена зон на дисплее, а затем использую их для фильтров фреймов данных. для отображения некоторой аналитики.

Код: Выделить всё

def create_radar_chart(metrics: Dict[str, List[float]], categories: List[str]) -> go.Figure:
fig = go.Figure()
fig.add_trace(go.Scatterpolar(
r=metrics['Baseline'],
theta=categories,
fill='toself',
name='Baseline',
line=dict(color='#808080'),
fillcolor='rgba(128, 128, 128, 0.2)'
))

colors = ['#00FFB8', '#4A9DFF', '#FF6B6B', '#FFD93D', '#6C63FF']
for i, (zone, values) in enumerate(metrics.items()):
if zone != 'Baseline':
color = colors[i % len(colors)]
fig.add_trace(go.Scatterpolar(
r=values,
theta=categories,
fill='toself',
name=zone,
line=dict(color=color),
fillcolor=f'rgba{tuple(list(int(color.lstrip("#")[i:i+2], 16) for i in (0, 2, 4)) + [0.4])}'
))

fig.update_layout(
width=500,
height=500,
polar=dict(
radialaxis=dict(
visible=True,
range=[0, max([max(vals) for vals in metrics.values()]) * 1.1]
),
bgcolor='rgba(0,0,0,0)'
),
showlegend=True,
paper_bgcolor='rgba(0,0,0,0)',
plot_bgcolor='rgba(0,0,0,0)',
font_color = '#7A7F8C',
legend_font_color = '#7A7F8C',
)

return fig
Метрики — это значения для графика по зонам, Категории — это имена

Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-plotly
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»