在Altair图例中更改形状颜色

阿丽娜五世

考虑从Altair网站改编的以下代码

import altair as alt
import pandas as pd

source = pd.DataFrame({
    'a': ['A', 'B', 'B', 'B', 'E', 'F', 'G', 'H', 'I'],
    'b': [28, 55, 43, 91, 81, 53, 19, 87, 52]
})
brush = alt.selection(type='single')

alt.Chart(source).mark_point(filled=True).encode(
    x='a',
    y='b:Q',
    shape='a',
    color=alt.condition(brush, 
                        alt.Color('b:N', legend=alt.Legend(columns=2, symbolFillColor='blue')),
                        alt.value(None)),
).add_selection(brush)

输出该图:

在此处输入图片说明

当我单击一个数据点时,其他所有点都消失了,这没关系。

问题在于传说中形状没有颜色的原因alt.value(None))

如何在保留选择的同时为图例中的形状设置不可见的颜色(当我单击使所有其他颜色消失的数据点时)?

我已经尝试过了symbolFillColor='blue'symbolStrokeColor='blue'但是它并没有改变形状的颜色。

谢谢 :)

jakevdp

一种方法是设置默认标记颜色:

import altair as alt
import pandas as pd

source = pd.DataFrame({
    'a': ['A', 'B', 'B', 'B', 'E', 'F', 'G', 'H', 'I'],
    'b': [28, 55, 43, 91, 81, 53, 19, 87, 52]
})
brush = alt.selection(type='single')

alt.Chart(source).mark_point(filled=True, color='blue').encode(
    x='a',
    y='b:Q',
    shape='a',
    color=alt.condition(brush, 
                        alt.Color('b:N', legend=alt.Legend(columns=2)),
                        alt.value(None)),
).add_selection(brush)

在此处输入图片说明

究其原因symbolFillColor,并symbolStrokeColor没有工作,是因为你是他们应用到色彩的传说,而那些默认的颜色会由编码覆盖。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章