altair pandas 值计数水平条形图

altair pandas value counts horizontal bar chart

import random
random.seed(49)
source = pd.Series([random.choice('abc') for _ in range(100)]).value_counts()
source.plot(kind='barh')

考虑上面应用的值计数系列和水平条字符图以及每个值出现的计数。

如何在 altair 中复制这个简单的示例?

是否有可用的转换,何时可以对一系列的出现次数进行计数或分组,然后避免使用 value_counts 方法进行绘图?

pandas 0.25.0 python3.7

提前致谢

import altair as alt
import random
random.seed(49)
source = pd.Series([random.choice('abc') for _ in range(100)]).value_counts()

alt.Chart(source.reset_index().rename(columns={0:'counts'})).mark_bar().encode(
    y='index:N',
    x='counts'
)

或者让 Altair 进行计数:

source = pd.DataFrame([random.choice('abc') for _ in range(100)], columns=['kind'])
alt.Chart(source).mark_bar().encode(
    alt.Y('kind:N'),
    alt.X('count(kind):Q')
)