首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Altair -线上的梯度

Altair -线上的梯度
EN

Stack Overflow用户
提问于 2021-01-16 00:49:41
回答 1查看 78关注 0票数 0

我想创建一个面积图,但是梯度应该从线到图表的顶部。有什么想法吗?

这里是一个常规梯度图的示例https://altair-viz.github.io/gallery/area_chart_gradient.html

代码语言:javascript
运行
复制
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')
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-16 02:46:23

您可以通过将y2编码设置为alt.value(0)来实现这一点-在本例中,零是从图表轴的顶部开始测量像素:

代码语言:javascript
运行
复制
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)
)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65740187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档