Прокручиваемая диаграмма Альтаира

#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 * количество столбцов. Вы получите горизонтальную полосу прокрутки, если она не соответствует окну вашего браузера.