Цель: раскрасить область над линией с помощью mark_area.
Проблема: область появляется ниже линии. Любые изменения, которые я вношу в канал Y2 (с точки зрения использования alt.Y2Value или alt.value), не имеют никакого эффекта.
Контекст: я знаю, что могу использовать датум, но это заставляет меня вычислять минимальные и максимальные диапазоны отображения диаграммы, что добавляет немного сложности при изменении масштабов (логарифмический или линейный, приятный=True/False, ноль=True/False). Я действительно хочу просто дать ссылки на пиксели.
import altair as alt
import polars as pl
import numpy as np
data = pl.DataFrame({
"x": np.arange(1, 4),
"y": np.arange(1, 4),
})
line = (
alt.Chart(data)
.mark_line()
.encode(
alt.X("x"),
alt.Y("y"),
)
)
area_above = alt.Chart(data).mark_area(color="black", opacity=0.2).encode(
alt.X("x"),
alt.Y("y"),
alt.Y2Value("height"),
# alt.Y2Value(0), # does not work either
# y2=alt.value("height"), # does not work either
)
[list] [*]Цель: раскрасить область над линией с помощью mark_area. [*]Проблема: область появляется [b]ниже[/b] линии. Любые изменения, которые я вношу в канал Y2 (с точки зрения использования alt.Y2Value или alt.value), не имеют никакого эффекта. [*]Контекст: я знаю, что могу использовать датум, но это заставляет меня вычислять минимальные и максимальные диапазоны отображения диаграммы, что добавляет немного сложности при изменении масштабов (логарифмический или линейный, приятный=True/False, ноль=True/False). Я действительно хочу просто дать ссылки на пиксели. [/list] [img]https://i.sstatic.net/249OKCM6.png[/img]
import altair as alt import polars as pl import numpy as np
data = pl.DataFrame({ "x": np.arange(1, 4), "y": np.arange(1, 4), })
line = ( alt.Chart(data) .mark_line() .encode( alt.X("x"), alt.Y("y"), ) )
area_above = alt.Chart(data).mark_area(color="black", opacity=0.2).encode( alt.X("x"), alt.Y("y"), alt.Y2Value("height"), # alt.Y2Value(0), # does not work either # y2=alt.value("height"), # does not work either )