altair - Altair - 线上方的渐变
问题描述
我想创建一个面积图,但是渐变应该从线条向上延伸到图表的顶部。有任何想法吗?
此处为常规梯度图示例https://altair-viz.github.io/gallery/area_chart_gradient.html
alt.Chart(source).transform_filter(
'datum.symbol==="GOOG"'
).mark_area(
line={'color':'darkgreen'},
color=alt.Gradient(
gradient='linear',
stops=[alt.GradientStop(color='white', offset=0),
alt.GradientStop(color='darkgreen', offset=1)],
x1=1,
x2=1,
y1=1,
y2=0
)
).encode(
alt.X('date:T'),
alt.Y('price:Q')
)
解决方案
您可以通过将y2
编码设置为alt.value(0)
- 在这种情况下,零测量图表轴顶部的像素:
import altair as alt
from vega_datasets import data
source = data.stocks()
alt.Chart(source).transform_filter(
'datum.symbol==="GOOG"'
).mark_area(
line={'color':'darkgreen'},
color=alt.Gradient(
gradient='linear',
stops=[alt.GradientStop(color='white', offset=0),
alt.GradientStop(color='darkgreen', offset=1)],
x1=1,
x2=1,
y1=1,
y2=0
)
).encode(
alt.X('date:T'),
alt.Y('price:Q'),
y2=alt.value(0)
)