#python #charts #scroll #scaling #altair
#python #Диаграммы #прокрутка #масштабирование #altair
Вопрос:
Я хотел бы объединить два примера из документации Altair, чтобы получить возможность прокручивать гистограмму по вертикали. Одним из вариантов использования этого может быть диаграмма Ганта.
В настоящее время я получаю возможность прокрутки только по горизонтали, при этом содержимое диаграммы сжимается до свойства высоты, которое я определяю:
import altair as alt
from vega_datasets import data
source = data.wheat()
bars = alt.Chart(source).mark_bar().encode(
x='wheat:Q',
y="year:O"
)
text = bars.mark_text(
align='left',
baseline='middle',
dx=3 # Nudges text to right so it doesn't appear on top of the bar
).encode(
text='wheat:Q'
)
selection = alt.selection_interval(bind='scales')
(bars text).properties(height=300).add_selection(
selection
)
Как я могу настроить диаграмму так, чтобы сохранить исходные пропорции и разрешить прокрутку в пределах заданной высоты?
Спасибо!
Ответ №1:
Категориальные кодировки, такие как ordinal ( ":O"
) и nominal ( ":N"
), не могут иметь выбор с привязкой к масштабу. Чтобы сделать вертикальную ось интерактивной, вы должны сделать кодировку y количественной. Например:
bars = alt.Chart(source).mark_bar(orient='horizontal').encode(
x='wheat:Q',
y='year:Q',
)
Комментарии:
1. Спасибо, @jakevdp — большинство ответов на SO по этому вопросу от вас, поэтому я приветствую ваши усилия!