如何为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
相关产品推荐
相关产品推荐

