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ć.
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:
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!
Jeśli podobał Ci się ten artykuł, być może zainteresują Cię również:
Dziękujemy za bycie częścią naszej społeczności! Zanim pójdziesz:
Zwierzęta potrzebują ćwiczeń fizycznych i umysłowych, tak jak ludzie. Zmysł węchu pomaga zwierzętom poznać otaczający je świat.
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.
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.
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.
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.