首页 > 解决方案 > 如何在 altair 中创建集群条形图

问题描述

我正在尝试为每个月绘制一个简单的 Activity1 和 Activity2 聚集条形图,它们彼此相邻。我无法让它工作。分组条形图是我能找到的最接近的示例,但仍不符合我的要求。我尝试使用带有融化的长格式,但仍然无法生成聚集条形图。如果有人可以帮助我弄清楚如何使用 altair 创建它,我将不胜感激。

d = {'Month':[1,2,3,4,5,6], 
     'Act1':[10,20,25,32,45,50],
     'Act2':[20,35,45,55,65,75]}
    df = pd.DataFrame(d)

dfm = pd.melt(df,id_vars=['Month'], value_vars = ['Act1','Act2'], var_name='Activity',value_name='Total')

alt.Chart(dfm).mark_bar().encode(
    x='Month:O',
    y='sum(Total):Q',
    color='Activity:O',
    column='Activity:O'
)

标签: pythonaltair

解决方案


如果你切换你的columnx编码,你会得到一个分组的条形图。要清理它,您也可以删除 x 编码标签:

alt.Chart(dfm).mark_bar().encode(
    x=alt.X('Activity:O', title=None, axis=None),
    y='sum(Total):Q',
    color='Activity:O',
    column='Month:O',
)

在此处输入图像描述


推荐阅读