#python #altair
#python #altair
Вопрос:
Я пытаюсь использовать mark_area()
для отображения неопределенности вокруг временного ряда (показано ниже). Однако, когда я представляю новый слой, домен диаграммы по оси Y сбрасывается до значения по умолчанию.
chart = alt.Chart(agg_data).encode(
x=alt.X(field='date', type='temporal', timeUnit='yearmonth', title='date'),
y=alt.Y(field=r'concentration', type='quantitative', title=r'[CH4] (ppb)',
scale=alt.Scale(domain=[1600, 1900])),
tooltip=[alt.Tooltip(field='date', type='temporal', title='date', format='%Y, %m'),
alt.Tooltip(field=r'concentration', type='nominal', title=r'concentration')]
).properties(width='container', height=300)
# Add uncertainty bands
bands = chart.mark_area(color='dodgerblue', fillOpacity=0.4).encode(
x=alt.X(field='date', type='temporal', timeUnit='yearmonth', title='date'),
y='lower bound:Q',
y2='upper bound:Q',
).properties(width='container', height=300)
l = chart.mark_line(color='dodgerblue')
p = chart.mark_point(color='dodgerblue', filled=True)
layer = alt.layer(bands, l, p)
Вот результат, который я получаю перед добавлением bands
:
и после:
Как я могу сохранить домен по оси Y с рисунка 1 во время использования mark_area()
?
Ответ №1:
Диаграммы областей по умолчанию содержат ноль. Чтобы изменить это, в y
кодировке укажите alt.Scale(zero=False)
:
y=alt.Y('lower bound:Q', scale=alt.Scale(zero=False)),