3

这是一个使用 altair 的简单绘图:

import altair as alt
import pandas as pd

df = pd.DataFrame([['a',2],['a',3],['b',4],['b',5],['b',4],['c',8]], columns=['Letters', 'Numbers'])

我正在count()为每个字母绘制:so a:2、、b:3c:1

chart = alt.Chart(df).mark_bar().encode(
   alt.X('Letters:N', sort=alt.EncodingSortField(op='count', order='descending')),
   alt.Y('count():Q'))

在此处输入图像描述

我如何过滤数据,例如,count()必须> = 2,所以只有ab被绘制?我知道如何pandas使用altair.

4

1 回答 1

4

您可以使用聚合转换来执行此操作,然后是过滤器转换:

alt.Chart(df).transform_aggregate(
    count='count()',
    groupby=['Letters']
).transform_filter(
    'datum.count >= 2'
).mark_bar().encode(
   alt.X('Letters:N', sort=alt.EncodingSortField(op='count', order='descending')),
   alt.Y('count:Q')
)

在此处输入图像描述

于 2019-02-05T19:28:30.083 回答