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/65135704/

相关文章:

python - 类似于 pandas 数据框的字符串的字典列表

当文件包含 import matplotlib 语句时 Python 代码调试失败(VS Code 和 Pycharm)

python - 属性错误 : 'NoneType' object has no attribute 'get' - Python - OpenErp

python - 如何用 Pandas 把传说放在情节之外

python - matplotlib.widgets.TextBox : change color

python - Matplotlib 散点图轴自动缩放对于小数据值失败

python - Matplotlib:在极轴上绘制任意向量

python:替换从文件读取的数组中的负值

python-2.7 - 使用具有多索引的数据框创建条形图

Python plot() 函数