You need to enable JavaScript to run this app. Altair绘图:如何将形状与颜色对应的两个图例合并为一个
优惠活动
大模型
产品
解决方案
定价
更多

Altair绘图:如何将形状与颜色对应的两个图例合并为一个

合并图例实现方法

Altair 默认会自动合并映射同一字段、且编码配置完全一致的多个编码的图例,你当前拆分出两个独立图例的原因是仅为color编码配置了自定义排序、图例values参数,shape编码没有匹配对应配置,被识别为两个不同的图例。

你只需要修改encode部分的shape编码配置,保证和color编码的参数完全一致即可,核心修改代码如下:

.encode(
  x=alt.X('Publication date:T'),
  y=alt.Y('Parameters:Q',
          scale=alt.Scale(type='log', domain=(1, 3e13)), 
          axis=alt.Axis(format=".1e")),
  # color编码保留原有配置不变
  color=alt.Color('Domain',  
                  sort=['Vision', 'Language', 'Games', 'Other'],
                  legend=alt.Legend(
                      values = ['Vision', 'Language', 'Games', 'Other'],),),
  # 给shape编码添加和color完全一致的sort、legend配置
  shape = alt.Shape('Domain',
                  sort=['Vision', 'Language', 'Games', 'Other'],
                  legend=alt.Legend(
                      values = ['Vision', 'Language', 'Games', 'Other'],),),
  tooltip=['System', 
           'Reference', 
           'Publication date', 
           alt.Tooltip('Parameters', format=".1e"), 
           'Domain'],
  opacity=alt.condition(selection, alt.value(1), alt.value(0.2))
)

修改完成后重新运行代码,即可得到合并后的单一图例,每个分类项会同时展示对应的颜色和形状标识,原有绑定到图例的选择交互也可以正常使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 16:06:02