Jak utworzyć rozwijane menu w Plotly

Wizualizuj różne kategorie na jednym wykresie

Zdjęcie Jasona Leunga na Unsplash

Wyobraźmy sobie, że masz zestaw danych z dużą ilością informacji uporządkowanych w różnych kolumnach, które chcesz zwizualizować. Dodatkowo sama treść może być pokazana z tym samym typem wykresu, np. wykresem słupkowym lub liniowym, ale nie ma sensu wyświetlać go od razu. Oczywiście możesz utworzyć kilka wątków pobocznych i wizualizować je jeden pod drugim. Ale to może wymknąć się spod kontroli, jeśli masz zbyt wiele kategorii do wyświetlenia. Na szczęście istnieje na to proste rozwiązanie, tworząc menu rozwijane w Plotly. Przyjrzyjmy się zatem, jak to zrobić.

Skrobanie danych

Najpierw musimy zdobyć dane. W tym przykładzie pobierzemy statystyki NBA dla poszczególnych graczy z www.basketball-reference.com . Aby uprościć sprawę, skupimy się tylko na dziesięciu najlepszych graczach pod względem punktów, zbiórek i asyst na mecz:

# Scraping individual stats from www.basketball-reference.com
df = pd.read_html('https://www.basketball-reference.com/leagues/NBA_2023_per_game.html')[0]

# Filtering out irrelevant entries 
df = df[df['Player'] != 'Player']

# Converting columns into numeric type if possible
for col in df.columns:
    try:
        df[col] = pd.to_numeric(df[col])
    except:
        pass

# Filtering and sorting for categories of interest
df_pts = df[['Player', 'PTS']].sort_values('PTS', ascending=False)[:10]
df_trb = df[['Player', 'TRB']].sort_values('TRB', ascending=False)[:10]
df_ast = df[['Player', 'AST']].sort_values('AST', ascending=False)[:10]

      
Image: df_pts, df_trb, df_ast

W kolejnym kroku utworzymy obiekt figura, który zawiera trzy wykresy słupkowe. Każdy wykres słupkowy reprezentuje inną kategorię (punkty, zbiórki, asysty), którą wyróżniliśmy, tworząc trzy ramki danych w poprzednim kroku. Należy pamiętać, że ważne jest, aby ustawić parametr visible tylko dla pierwszego wykresu słupkowego na True , a dla pozostałych na false :

# Initializing figure object
fig = go.Figure()

# Adding points bar plot
fig.add_trace(
    go.Bar(
        y=list(df_pts['Player']),
        x=list(df_pts['PTS']),
        name='Points',
        orientation='h'
    )
)

# Adding rebounds bar plot
fig.add_trace(
    go.Bar(
        y=list(df_trb['Player']),
        x=list(df_trb['TRB']),
        name='Rebounds',
        visible=False,
        orientation='h'
    )
)

# Adding assists bar plot
fig.add_trace(
    go.Bar(
        y=list(df_ast['Player']),
        x=list(df_ast['AST']),
        name='Assists',
        visible=False,
        orientation='h'
    )
)

# Minor layout adjustments
fig.update_layout(title='<b>Top 10 Leaders</b>', 
                  title_x=0.5,
                  margin=dict(t=50),
                  yaxis=dict(autorange="reversed", ticksuffix="  ")
                 )

fig.show()

      
Image: points bar plot

Teraz dodajmy menu rozwijane do obiektu figure za pomocą metody update_layout . W parametrze updatemenus musimy przekazać listę słowników dla parametru buttons . Każdy słownik określa, co następuje:

  • etykieta: nazwa pojawiająca się na przycisku → np. Punkty
  • metoda: akcja do wykonania po kliknięciu → aktualizacja
  • args: lista ze słownikiem definiującym wykresy widoczne po kliknięciu w odpowiednią etykietę → [True, False, False] aby pokazać tylko pierwszy wykres słupkowy, który został dodany metodą add_trace w poprzednim kroku
  • fig.update_layout(
        updatemenus=[
            dict(
                xanchor='left',
                x=-0.15,
                yanchor='top',
                y=1.1,
                active=0,
                buttons=list([
                    dict(label="Points",
                         method="update",
                         args=[{"visible": [True, False, False]}]
                        ),
                    dict(label="Rebounds",
                         method="update",
                         args=[{"visible": [False, True, False]}]
                        ),
                    dict(label="Assists",
                         method="update",
                         args=[{"visible": [False, False, True]}]
                        )
                ]),
            )
        ])
    
    fig.show()
    
           
    Image: bar plot with dropdown menu

W tym artykule wyjaśniłem, jak utworzyć rozwijane menu w Plotly do wizualizacji wielu kategorii, które są obecne w różnych kolumnach ramki danych. Jest to szczególnie przydatne, jeśli masz wiele kategorii do wyświetlenia, ale nie chcesz tworzyć oddzielnego wykresu dla każdej z nich. Mam nadzieję, że to było dla Ciebie pomocne i dziękuję za przeczytanie!

Powiązane artykuły

Jeśli podobał Ci się ten artykuł, być może zainteresują Cię również:

Kodowanie na wyższym poziomie

Dziękujemy za bycie częścią naszej społeczności! Zanim pójdziesz:

  • Klaskajcie za relację i śledźcie autora
  • Zobacz więcej treści w publikacji Level Up Coding
  • Bezpłatny kurs rozmowy o kodowaniu ⇒ Zobacz kurs
  • Śledź nas: Twitter | LinkedIn | Biuletyn

Suggested posts

Pomocna wskazówka właściciela psa: dlaczego ważne jest, aby pies wąchał na spacerze

Pomocna wskazówka właściciela psa: dlaczego ważne jest, aby pies wąchał na spacerze

Zwierzęta potrzebują ćwiczeń fizycznych i umysłowych, tak jak ludzie. Zmysł węchu pomaga zwierzętom poznać otaczający je świat.

Postrzeganie — Wyobrażanie sobie — Przypominanie sobie — Myślenie — Czucie

Postrzeganie — Wyobrażanie sobie — Przypominanie sobie — Myślenie — Czucie

UCZ SIĘ CIĄGLE Lepsze postrzeganie, aby wyobrazić sobie żywsze. Dowiedz się więcej, aby lepiej przywoływać złożone myśli i generować wzbogacone doświadczenia.

Related posts

Finansowanie usuwania dwutlenku węgla w RO24

Podział wniosków o środki Carbon180 na różne ścieżki

Finansowanie usuwania dwutlenku węgla w RO24

Autor: Alyson Lee, doradca zarządzający ds. spraw rządowych Coroczny proces przyznawania środków przez rząd federalny ma kluczowe znaczenie dla naszych wysiłków na rzecz sfinansowania usuwania dwutlenku węgla (CDR). Każdego roku Carbon180 przesyła prośby do różnych biur kongresowych, aby pomóc wskazać, gdzie będą płynąć dolary w przyszłym roku.

Jak uratować planetę i zarabiać pieniądze

Jak uratować planetę i zarabiać pieniądze

Ile razy bez zastanowienia wyrzuciłeś plastikową butelkę, szklany słoik, aluminiową puszkę lub pakiet zielonej energii? Ile razy chciałeś dostać coś w zamian za ich recykling? Jeśli jesteś jak większość ludzi, odpowiedź brzmi prawdopodobnie wiele razy. Recykling jest często postrzegany jako kłopot, przykry obowiązek lub obowiązek, który nie przynosi żadnych natychmiastowych ani wymiernych korzyści.

Dziennik Ouvert

Dziennik Ouvert

Otwórz pamiętnik: zdjęcie dziennie . Zawsze fascynowały mnie opowieści.

Archiwum tego zagrożenia: tom 7 Black Basta

Archiwum tego zagrożenia: tom 7 Black Basta

W dzisiejszym połączonym świecie zagrożenie cyberatakami jest bardziej powszechne niż kiedykolwiek. Cyberprzestępcy i podmioty państwowe nieustannie starają się wykorzystywać luki w zabezpieczeniach i kraść cenne dane, stanowiąc poważne zagrożenie dla organizacji każdej wielkości.