在 Altair 中创建基于条件的颜色散点图可以使用 mark_point() 函数和 encode() 函数。以下是一个示例,显示一组汽车数据的散点图,使用颜色来表示不同的车辆类型。
import altair as alt
from vega_datasets import data
cars = data.cars()
alt.Chart(cars).mark_point().encode(
x='Horsepower',
y='Miles_per_Gallon',
color=alt.condition(
alt.datum.Origin == 'USA',
alt.value('red'),
alt.value('steelblue')
)
).interactive()
上述代码中,Horsepower 表示汽车的发动机功率,而 Miles_per_Gallon 表示每加仑油能够行驶的英里数。使用 encode() 函数中的 x 和 y 参数将这两个变量绑定到散点图的坐标轴上。color 参数通过调用 alt.condition() 函数来指定颜色:
color=alt.condition(
alt.datum.Origin == 'USA',
alt.value('red'),
alt.value('steelblue')
)
这里 alt.datum.Origin == 'USA' 表示使用 Origin 列定义的条件来为来自美国的车辆设置红色,使用 steelblue 设置其他车辆的颜色。
运行以上代码,将得到一个包含相应数据的散点图,其中红色表示来自美国的车辆,而蓝色表示其他车辆。