Altair 条形图显示百分比

时间:2021-06-09 15:49:54

标签: python bar-chart altair stacked-chart

我想使用 altair 绘制堆积条形图。 数据是一个时间序列。预期的输出是计数 每个日期(和每个组,即“类型”)的 ID 并计算其占组总数的百分比。这在“总计”列中给出 示例数据框如下所示:

df = pd.DataFrame({'date': ['2020-04-08','2020-04-08','2020-04-08','2020-04-23','2020-04-23','2020-04-23','2020-04-08','2020-04-08','2020-04-23','2020-04-23','2020-04-28'],
                    'type': ['h','h','h','h','h','h','s','s','s','s','s'],
                     'ID': ['a','b','c', 'a','e','f', 'a','e','a','c','d'],
                      'total': [5,5,5,5,5,5,4,4,4,4,4]})

dataframe
我设法使用计数显示堆叠条形图,但不计算百分比。 这是我目前尝试过的,但结果不正确。

alt.Chart(df).transform_joinaggregate(
    xxx='count(ID)'
).transform_calculate(
    Prc='datum.xxx / datum.total'  
).mark_bar().encode(
    alt.X('monthdate(date):T'),
    y=alt.Y('Prc:Q'), color=alt.Color('type:N'))

图表中的第一个柱线 (2020-04-08) 将显示 3/5 --> "0,6"(键入 'h')和 2/4 --> "0,5"(键入 ' s')
barchart
我显然在计算别的东西。
任何提示如何正确处理? 谢谢!

0 个答案:

没有答案