【问题标题】:Adding Comma to Bar Labels在 MatplotLib 中为条形标签添加逗号
【发布时间】:2022-01-27 14:27:52
【问题描述】:

我一直在使用ax.bar_label 方法将数据值添加到条形图中。数字很​​大,例如 143858918。如何使用ax.bar_label 方法在数据值中添加逗号?我确实知道如何使用注释方法添加逗号,但如果可以使用bar_label,我不确定。是否可以使用可用的fmt 关键字参数?

【问题讨论】:

    标签: python python-3.x matplotlib seaborn bar-chart


    【解决方案1】:

    是否可以使用fmt 关键字参数?

    • fmt 参数基于旧的 % 运算符,它不支持逗号分隔符。
    • 改为使用带有 f 字符串的 labels 参数。

    {:,.0f} 格式化容器的datavalues 以获得逗号分隔符(如果需要更多小数位,请增加0):

    container = ax.containers[0]
    ax.bar_label(container, labels=[f'{x:,.0f}' for x in container.datavalues])
    

    或者对于分组条形图,迭代所有容器:

    for container in ax.containers:
        ax.bar_label(container, labels=[f'{x:,.0f}' for x in container.datavalues])
    

    玩具示例:

    x = np.random.default_rng(123).integers(10_000_000, size=5)
    fig, ax = plt.subplots()
    ax.bar(range(len(x)), x)
    
    container = ax.containers[0]
    ax.bar_label(container, labels=[f'{x:,.0f}' for x in container.datavalues])
    

    【讨论】:

    • 这是使用标签参数的一个很好的解决方案。谢谢!这就像一个魅力。
    猜你喜欢
    • 1970-01-01
    • 2013-10-11
    • 2015-05-09
    相关资源
    最近更新 更多