#python #charts #altair
Вопрос:
Я пытаюсь построить график данных за каждый день. В зависимости от выбора данных это может быть несколько дней или несколько месяцев. В обоих случаях я хочу одну и ту же шкалу (1 бар в день).
Я могу без проблем выводить данные за день. График также можно прокручивать, но если я выбрал несколько месяцев, он по-прежнему показывает только 30 дней. Если я прокручиваю влево/вправо, данных нет. Что я упускаю?
timeunit='date'
a = alt.Chart(data).mark_bar(opacity=0.6).encode(
x=alt.X('date(Gemeldet_Am):T',
timeUnit=timeunit,
axis=alt.Axis(title='Zeitfenster', grid=False)),
y=alt.Y('count(ABC):Q',
axis=alt.Axis(title='Number of calls',grid=True)),color='mean(Sentiment):Q',
tooltip=[alt.Tooltip('count(ABC):Q'),
alt.Tooltip('mean(Sentiment):Q',title='Sentiment')]).interactive()
b = alt.Chart(data).mark_line(color='orange', interpolate='monotone').encode(
x=alt.X('date(Gemeldet_Am):T',
timeUnit=timeunit),
y='mean(Sentiment):Q').interactive()
Комментарии:
1. Пожалуйста, укажите образец ваших данных и то, как вы их читаете, чтобы другие могли попытаться помочь. Я также рекомендую свести ваш пример к минимальному коду, необходимому для воспроизведения поведения.
Ответ №1:
Это работает для меня, если я определяю размер панели и размер шага:
alt.Chart(df).mark_bar(width=20)
.encode(...)
.properties(with=alt.Step(30))
теперь каждая полоса будет иметь ширину 20 пикселей и будет иметь ширину 30 пикселей. Общая ширина вашей диаграммы будет составлять 30 * количество столбцов. Вы получите горизонтальную полосу прокрутки, если она не соответствует окну вашего браузера.