You need to enable JavaScript to run this app. 如何在Altair中绘制两个指定分位数之间的填充区域
优惠活动
大模型
产品
解决方案
定价
更多

如何在Altair中绘制两个指定分位数之间的填充区域

Altair绘制两个分位数区间填充的实现方案

可直接运行的完整代码

import altair as alt
from vega_datasets import data

source = data.cars()
# 自定义需要填充的分位数区间边界
lower_quantile = 0.25
upper_quantile = 0.75

base = alt.Chart(source).encode(alt.X("Year:T", title="Year"))

base.transform_quantile(
    "Miles_per_Gallon", 
    probs=[lower_quantile, upper_quantile], 
    groupby=["Year"]
# 将分位数长表转为宽表,不同概率的分位值转为独立列
).transform_pivot(
    pivot="prob", 
    value="value", 
    groupby=["Year"]
).mark_area(opacity=0.2).encode(
    alt.Y(f"{lower_quantile}:Q", title="Miles per Gallon"),
    alt.Y2(f"{upper_quantile}:Q")
)

实现说明

  • 原代码调用transform_quantile后输出为长表结构,每个分位数对应独立数据行,因此会生成两个独立的面积图层,各自从X轴延伸到对应分位值,不符合预期
  • 通过transform_pivot转换表结构后,同一年份的两个分位值会被放到同一行的两个独立字段中,即可直接通过Y和Y2参数指定填充区域的上下边界
  • 方案支持任意分位数配置,只需修改lower_quantile和upper_quantile的赋值即可适配不同的区间需求,无需调整其他逻辑

内容的提问来源于stack exchange,提问作者JP-Ellis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 10:09:04