【问题标题】:How to create clustered bar chart in altair如何在 altair 中创建集群条形图
【发布时间】:2019-05-10 19:56:09
【问题描述】:

我正在尝试绘制一个简单的 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'
)

【问题讨论】:

    标签: python altair


    【解决方案1】:

    如果您切换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',
    )
    

    【讨论】:

    • 谢谢!如果可以的话,此图表上还有几个改进问题 1. 如何在底部获得月份数字? 2.如何使刻度线全长而不是在列结束? 3. 什么因素决定了图表在没有明确指定的情况下应该堆叠还是并排显示?
    • 1) 据我所知,目前没有办法做到这一点。 2)我不确定你的意思。 3) 如果多个类别具有相同的编码,则条形图始终堆叠。在这里,我们在 x 和列编码之间显式拆分多个类别,因此没有堆叠。
    猜你喜欢
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 2021-04-14
    相关资源
    最近更新 更多