如何在 Altair 中绘制均值和中位数,并通过颜色编码区分?
下面是我的第一次尝试,但它不包括图例,而且看起来不是最优雅的方式。
import altair as alt
from vega_datasets import data
source = data.cars()
mean = alt.Chart(source).mark_line(color='red', point=True).encode(
x='Year',
y='mean(Miles_per_Gallon)'
)
median = alt.Chart(source).mark_line().encode(
x='Year',
y='median(Miles_per_Gallon)'
)
mean+median
最佳答案
这最好用 Aggregate Transform 来完成计算聚合,然后是 Fold Transform允许在单个编码中使用两列:
import altair as alt
from vega_datasets import data
source = data.cars()
alt.Chart(source).transform_aggregate(
mean='mean(Miles_per_Gallon)',
median='median(Miles_per_Gallon)',
groupby=['Year']
).transform_fold(
['mean', 'median'],
as_=['aggregate', 'value']
).mark_line().encode(
x='Year',
y='value:Q',
color='aggregate:N',
)
关于python - 在 Altair 图中绘制中位数和平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56600974/