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

