You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Altair散点图中部分数据点设置形状且保留其余数据

解决Altair散点图中仅为部分类别指定形状且保留所有数据的问题

要实现仅为特定类别指定形状,同时保留其余未指定类别的数据显示,关键是修改alt.Scale的unknown参数——默认情况下,不在domain中的类别会被排除,设置该参数后可以为这些未定义的类别分配一个默认形状。

修改后的代码示例

import altair as alt
from vega_datasets import data

source = data.cars()

alt.Chart(source).mark_point(size=60).encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    shape=alt.Shape(
        'Origin',
        scale=alt.Scale(
            domain=['USA', 'Europe'],
            range=['circle', 'square'],
            unknown='triangle'  # 为未指定的类别设置默认形状
        )
    )
)

原理说明

  • domain参数指定需要自定义形状的目标类别,range对应分配的形状
  • unknown参数定义所有不在domain中的类别使用的默认形状,可选值包括'circle'、'square'、'triangle'、'cross'等Vega-Lite支持的形状类型
  • 设置后,未在domain中定义的类别(比如示例中的Japan)会使用unknown指定的形状显示,同时图例也会保留所有类别条目

内容的提问来源于stack exchange,提问作者Revan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:28:09