Графики с несколькими линиями, окрашенными только в одну линию - PullRequest
2 голосов
/ 26 мая 2020

Как создать интерактивную многолинейную диаграмму, на которой окрашена только одна интересующая линия, а все остальные линии выделены серым:

Итак, здесь я хочу, чтобы США были окрашены в красный цвет, а остальные страны - в серый . Это то, что у меня есть до сих пор:

import pandas as pd
import plotly.express as px

df = px.data.gapminder()
fig = px.line(df, x='year', y='pop', color="country", hover_name="country",color_discrete_map={'United States': 'Red'})
fig.update_layout(autosize=False,width=700,height=500)
fig.show()

Но он меняет только цвет при наведении, а не цвет линии

Я попытался нарисовать США отдельно как его собственную цифру, а затем обновить ее до исходный рисунок, но он также не работает.

1 Ответ

3 голосов
/ 26 мая 2020

Вы всегда можете редактировать элементы вашего fig напрямую, используя a для l oop, чтобы получить следующее:

enter image description here

Полный код:

import pandas as od
import plotly.express as px

df = px.data.gapminder()
fig = px.line(df, x='year', y='pop', color="country", hover_name="country")

# edit colors
for d in fig['data']:
    if d['name'] == 'United States':
        d['line']['color']='red'
    else:
        d['line']['color']='lightgrey'

fig.show()
...