Python 显示百分比的牵牛星柱状图

Python 显示百分比的牵牛星柱状图,python,bar-chart,altair,stacked-chart,Python,Bar Chart,Altair,Stacked Chart,我想用牵牛星绘制一个堆叠的柱状图。 数据是一个时间序列。预期的输出是计数 每个日期(和每个组,即“类型”)的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',

我想用牵牛星绘制一个堆叠的柱状图。 数据是一个时间序列。预期的输出是计数 每个日期(和每个组,即“类型”)的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]})

我设法用count显示了一个堆叠的条形图,但没有计算百分比。 这是我到目前为止尝试过的,但结果不正确

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”)

我显然在计算其他的事情
有什么提示可以让它正确吗?
谢谢

你能举一个预期产出的例子吗?我不知道“计算每个日期的ID数”是什么意思(所有ID?唯一ID的数量?)或“计算其占整个组的百分比”是什么意思(什么百分比?ID的数量?作为什么的一部分?数据集中ID的总数?每个日期作为组的一部分出现的ID的数量?),例如,2020年4月28日,对于该日期,ID计数将为3(类型=h)和2(类型=s)。但是我想显示ID总数的百分比。对于type=h和4(type=s),唯一ID的总数分别为5和4。我添加了一列带有这个数字(“总数”),因为我不知道如何计算这个数字。这意味着我想要一个像上面那样的堆叠条形图,但是它会显示(3/5=)0,6和(2/4=)0,5,而不是3和2。