带标签的 Altair 中的分组条形图

Grouped bar chart in Altair with labels

我正在尝试在 Altair 中创建带标签的分组条形图。基于来自 @jakevdp grouped bar with labels 的 post。我能够创建以下图表:

这是我的代码:

`def missing_vals1(data, debug= False):
    chart = alt.Chart(data).mark_bar(size=15).encode(
        x= alt.X(field= 'claim', 
                 type='nominal', 
                 axis= alt.Axis(labels=False, 
                               title= None,
                               ticks=False),
        ),
        y= alt.Y('Total:Q', 
                 axis=alt.Axis(
                     grid=False)
                ), 
        color = alt.Color('claim',
                        # header = alt.Header()
                         ),
        #column = alt.Column('claim')
        
    )
    
            
    text = chart.mark_text(
        color = 'black',
        dy= -5
    ).encode(
        text = alt.Text(
            'Total:Q',
            format = ',.0f')
    )
    
    return alt.layer(chart, text, data=data
                    ).facet(column = '#_missing'
        ).configure_view(
        continuousHeight=200,
        continuousWidth= 0.5
    )

` 但是,我想将“#_missing”标题以及每列 [0...14] 的编号移动到 x 轴的底部,但是使用颜色编码是不可能的。

我也尝试过使用列编码,但我无法使用标签(如上文 link 中所述)。

最后,我想将文本颜色更改为全黑,同时减少列间距。

欢迎任何提示!

编辑:这是我正在使用的数据框的样子

问题 1: 我想将标题和 x-axis 标签在图表中向下移动。 这可以在 header 详细信息中的 Facet 中设置。

问题2:我想缩小列间距。 这可以通过在 Facet 配置中设置间距来完成。

问题 3:我想将文本的颜色更改为全黑。 条形图和文字的颜色好像不能改成同一种颜色。在我研究的时候,可能有办法做到这一点。我的实验是尝试将 this page 上的颜色范围更改为黑色,但条形和文本都是黑色的。

alt.layer(chart, text, data=data).facet(
    column=alt.Column(
        '#_missing:Q',
        header=alt.Header(titleOrient='bottom', labelOrient='bottom'))
    ).configure_view(
    continuousHeight=200,
    continuousWidth= 0.5
).configure_facet(
    spacing=0.5
)