Altair中带标签的分组条形图

2024-05-06 12:55:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在Altair中创建一个带标签的分组条形图。基于@jakevdpgrouped bar with labels的这篇文章。我能够创建以下图表:

altair grouped bars with labels

这是我的代码:

`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轴的底部,但不可能使用颜色编码

我还尝试使用列编码,但我无法使用标签(如上面链接中所述)

最后,我想将文本的颜色更改为全黑色,并减少列之间的间距

欢迎任何提示

编辑:这就是我正在使用的数据帧的外观 enter image description here


Tags: textfalsedatalabelschartbar标签alt
1条回答
网友
1楼 · 发布于 2024-05-06 12:55:03

第1期:我想在图表中向下移动标题和x轴标签。 这可以在标题详细信息的Facet中设置

第2期:我想缩小列间距。 这可以通过在镶嵌面配置中设置间距来实现

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

enter image description here

相关问题 更多 >