python - 在 Altair 图中绘制中位数和平均值

标签 python data-visualization altair

如何在 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

enter image description here

最佳答案

这最好用 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',
)

enter image description here

关于python - 在 Altair 图中绘制中位数和平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56600974/

相关文章:

Python - Plot.ly - MySQL 实时流可视化

javascript - Altair:Javascript 错误阻止图表显示

python - 预热服务如何在 python google app engine 中工作?

python - 在生产环境中运行 Python Pyramid 服务器,无需 Apache

javascript - 两个网络图的比较

analytics - 将百分比值显示为自定义形状的填充

python - 在 altair 中重命名工具提示

python - 将 R 值(相关性)添加到 Altair 中的散点图

python - 从python调用url时获取 ‘wrong’页面源

python - 使用时间戳列表选择由 DatetimeIndex 索引的 Pandas DataFrame 的子集