首页 > 后端开发 > Python教程 > 如何用数据值有效地注释 Pandas 条形图?

如何用数据值有效地注释 Pandas 条形图?

Mary-Kate Olsen
发布: 2024-12-07 19:35:11
原创
994 人浏览过

How to Efficiently Annotate Pandas Bar Plots with Data Values?

用数据值注释 Pandas 条形图

使用 Pandas 条形图时,通常需要显示它们代表的数值。本文解决了使用 DataFrame 中的舍入数据值注释条形的问题。

问题:

考虑以下 DataFrame (df):

                 A         B
  value1  0.440922  0.911800
  value2  0.588242  0.797366
登录后复制

目标是用相应的舍入值注释每个条形,如图所示下面:

[带有注释值的条形图图像]

低效方法:

一种常见的注释方法是使用注释函数。然而,正如下面的代码示例所示,这种方法将注释定位在 x 刻度上:

ax = df.plot(kind='bar')
for idx, label in enumerate(list(df.index)):
    for acc in df.columns:
        value = np.round(df.ix[idx][acc], decimals=2)
        ax.annotate(value,
            (idx, value),
            xytext=(0, 15),
            textcoords='offset points')
登录后复制

最佳解决方案:

更有效的解决方案是从轴的补丁中获取数据:

for p in ax.patches:
    ax.annotate(str(p.get_height()), (p.get_x() * 1.005, p.get_height() * 1.005))
登录后复制

此代码提取条形高度并将注释放置在条形略上方以

自定义:

要自定义注释,可以调整字符串格式和偏移量。例如:

for p in ax.patches:
    ax.annotate("{:.2f}".format(p.get_height()), (p.get_x() + p.get_width() / 2, p.get_height() * 1.005))
登录后复制

这会将注释置于每个条形的中心,并将高度格式化为小数点后两位。

以上是如何用数据值有效地注释 Pandas 条形图?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板