如何在alt.Color的condition参数中使用alt.condition()方法
你当前的代码逻辑是正确的,仅需要调整参数的嵌套位置即可正常运行:alt.Color的全局配置(比如legend、scale、title)不要放在alt.condition内部,要放在alt.Color的顶层参数中。
正确的长格式写法
brush = alt.selection_interval() alt.Chart(cars).mark_point().encode( alt.Y("Horsepower"), alt.X("Miles_per_Gallon", title="consumption"), alt.Color( condition=alt.condition( brush, 'Origin:N', # 选中态直接指定映射的字段和类型 alt.value('lightgray') # 未选中态指定固定颜色值 ), legend=None # 图例隐藏的配置放在alt.Color顶层即可 ) ).add_selection( brush )
长格式下的使用规则
alt.Color的condition参数仅接收alt.condition()返回的条件配置,不需要再嵌套一层alt.Color定义- 如果你追求完全统一的长格式编码风格,选中态的字段也可以写成规范的长格式:
alt.Field('Origin', type='nominal') - 所有通道全局配置(自定义色阶、图例设置、标题设置等)都统一放在
alt.Color的顶层参数中,示例如下:
alt.Color( condition=alt.condition( brush, alt.Field('Origin', type='nominal'), alt.value('lightgray') ), title="汽车产地", legend=alt.Legend(orient='bottom'), scale=alt.Scale(range=['#e63946', '#457b9d', '#1d3557']) )
内容的提问来源于stack exchange,提问作者Mostafa Bouzari
相关产品推荐
相关产品推荐

