Altair中选择详细图表的颜色可以自定义。下面的示例演示如何为选择详细图表更改颜色。
import altair as alt
from vega_datasets import data
source = data.iowa_electricity()
bar = alt.Chart().mark_bar().encode(
x='year:O',
y='net_generation:Q',
color=alt.condition(
alt.selection_interval(),
alt.Color('source:N', scale=alt.Scale(scheme='category20')),
alt.value('lightgray')
)
).properties(
selection=alt.selection_interval()
)
text = bar.mark_text(
align='center',
baseline='bottom',
dx=1,
).encode(
text=alt.Text('net_generation:Q', format='.2s'),
color=alt.condition(alt.selection_interval(), alt.Color('source:N'), alt.value('lightgray')),
).properties(
selection=alt.selection_interval()
)
(bar + text).properties(
title='Net Electricity Generation by Source in Iowa (Interactive)'
).configure_axis(
labelAngle=0,
titleFontWeight='normal',
titleFontSize=12,
).configure_title(
anchor='start',
subtitleFontSize=12,
subtitleFontWeight='normal'
)
在这个例子中,我们使用了alt.condition方法来定义颜色,该方法接收三个参数:选择的条件,当条件为真时应用的颜色,以及当条件为假时应用的颜色。在这里,alt.selection_interval()作为选择条件,alt.Color('source:N', scale=alt.Scale(scheme='category20'))是当条件为真时使用的颜色,它将根据不同的电源来源为每个条形图提供不同的颜色。 最后,alt.value('lightgray')是当条件为假时使用的颜色,即默认情况下提供的颜色。