python - 在 Pandas 条形图上用值注释条形

标签 python matplotlib plot pandas dataframe

我正在寻找一种方法,用我的 DataFrame 中的舍入数值在 Pandas 条形图中注释我的条形。

>>> df=pd.DataFrame({'A':np.random.rand(2),'B':np.random.rand(2)},index=['value1','value2'] )         
>>> df
                 A         B
  value1  0.440922  0.911800
  value2  0.588242  0.797366

我想得到这样的东西:

bar plot annotation example

我尝试使用此代码示例,但注释都以 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))

您需要调整字符串格式和偏移量以使事物居中,也许使用 p.get_width() 中的宽度,但这应该可以帮助您入门。除非您在某处跟踪偏移量,否则它可能不适用于堆积条形图。

关于python - 在 Pandas 条形图上用值注释条形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25447700/

相关文章:

r - 如何在R中绘制用户定义的函数?

python - 基于阶段的条件(dev、qual、prod)

python - 避免 scrapy 上的重复值

python - Cartopy 的极坐标图轴标签

python - Matplotlib 重用由另一个脚本创建的图形

python - 为什么在设置其他一些属性循环时,轴颜色循环会减少为单一颜色?

r - 如何绘制集群的集群内平方和图?

python - 在 Python 中求解数值 ODE

python - 在从传感器读取数据而不打印从传感器读取的数据时,While 循环无法立即工作?

python - 在与 Scrapy 进行身份验证的登录 session 后使用 Selenium