Код: Выделить всё
import pandas as pd
# Sample Data
top = pd.DataFrame({
'Artist': ['Artist1', 'Artist2', 'Artist3', 'Artist1', 'Artist2', 'Artist3'],
'Sales': [100, 200, 300, 150, 250, 350],
'Year': ['2020', '2020', '2020', '2021', '2021', '2021'],
})
# Selection for the legend
select_artist_legend = alt.selection_point(fields=["Artist"], bind="legend")
# First plot (cumulative sales over years)
line = alt.Chart(top).transform_window(
cumulative_sales='sum(Sales)',
sort=[{'field': 'Year'}],
groupby=['Artist']
).mark_line().encode(
alt.X("Year:T"),
alt.Y("cumulative_sales:Q"),
alt.Color("Artist:N"),
opacity=alt.condition(select_artist_legend, alt.value(1.0), alt.value(0.1))
).add_params(select_artist_legend)
# Dropdown selection for the year
year_dd = alt.binding_select(options=sorted(top.Year.unique()), name="Year")
year_select = alt.selection_point(fields=["Year"], bind=year_dd, name='year_select')
# Third plot (sales by artist for selected year)
bar = alt.Chart(top).mark_bar().encode(
alt.X("Artist:N"),
alt.Y("Sales:Q"),
alt.Color("Artist:N")
).add_params(year_select).transform_filter(year_select)
# Combine the charts
combined_chart = line & bar
combined_chart
Я пробовал отладку и пытался еще больше разделить две диаграммы, но, похоже, это не помогло. помощь. Я также дважды пробовал складывать полосу вместо линии и полосы, но там все работает, поэтому сложение само по себе не представляло проблемы.
Подробнее здесь: https://stackoverflow.com/questions/785 ... -displayed