当前位置: 首页 > 知识库问答 >
问题:

顶部python上具有值的条形图图[复制]

贺劲
2023-03-14

我的熊猫有一张桌子。

    Total_orders    frequency
      0.0           18679137
      1.0           360235
      2.0           68214
      3.0           20512
      4.0           7211
      ...           ...
      50.0          12

我想绘制一个总订单与频率的条形图,频率值显示在每个条形的顶部。

我正在运行这三个代码。代码1:

plt.figure(figsize=(12,6))
df2 = df.groupby('Total_orders')['frequency'].plot(kind='bar')
plt.xlabel('Total_orders')
plt.ylabel('frequency')

for rect in df2.patches:
    height = rect.get_height()
    df2.text(rect.get_x() + rect.get_width()/2., 1.05*height+100,
'%d' % int(height),ha='center', va='bottom', rotation=90)

代码2:(用于循环)

for ii,rect in enumerate(df2.patches):
    height = rect.get_height()
    df2.text(rect.get_x() + rect.get_width()/2., 1.14*height+100,'%d' % int(height),ha='center', va='bottom', rotation=90)

代码3

for p in df2.patches:
df2.annotate(str(p.get_height()), (p.get_x() * 1.005, p.get_height() *1.05),rotation=90)

但是当我运行代码时,它会向我显示错误,那

属性错误:“系列”对象没有属性“补丁”

任何想法为什么会发生这种情况,以及如何删除它?提前致谢。

共有1个答案

濮阳茂材
2023-03-14

可能的解决方案如下:

# pip install pandas
# pip install matplotlib

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# set test data and create dataframe
data = {'Total_orders': [1,2,3,4,5,6,7,8,9,10], 'frequency': [2,3,4,5,6,7,8,10,11,12]}
df = pd.DataFrame(data)

# set plot fugure size
plt.rcParams["figure.figsize"] = [9,5]

fig, ax = plt.subplots()
rects = ax.bar(df['Total_orders'], df['frequency'], color='r', label='frequency')

ax.set_xlabel('Orders')
ax.set_ylabel('Frequency')
ax.set_title('Frequency per orders')
ax.set_xticks(df['Total_orders'])
ax.legend(loc=2)

# add values on top
ax.bar_label(rects, padding=3)

fig.tight_layout()
plt.show()

返回

 类似资料:
  • 我的熊猫有一张桌子。 我想绘制一个条形图总订单与频率,频率的值显示在每个条的顶部。 我正在运行这三个代码。 代码1: 代码2:(用于循环) 代码3 但是当我运行代码时,它会向我显示错误 属性错误:“系列”对象没有属性“补丁” 知道为什么会发生这种情况,以及如何消除它吗?

  • 我想知道这是否可以在Datadog中实现。我有一个在1个度量-现在数据通过多个标记发布到Datadog,例如,,可能还有10个不同的标签。 我试图在仪表板中创建Datadog图表,它将在堆叠条形图中显示实体计数的前5个标记。我知道添加更多查询的选项,但由于我不确定将来会有哪些实体可用,我希望datadog总是在仪表板中动态显示前5个实体(而不是在查询中指定要显示的标记)。这就是我目前拥有的(它完成

  • 我是Python新手。我想在下图中显示每个箱上方的值: 这是我的代码: 这是我想要的图表:

  • 我正在使用Chart.js并将其设置为生成一个漂亮的条形图。不幸的是,当您将鼠标悬停在条形图上时,默认弹出窗口仅显示条形图的值。我想弹出显示组中每个条的标签及其值。你有什么例子吗?非常感谢你! 实例

  • 问题内容: 我一直在寻找一种方法,用DataFrame中的四舍五入的数值在Pandas条形图中标注条形。 我想得到这样的东西: 我尝试使用此代码示例,但所有注释均以x刻度为中心: 问题答案: 你可以直接从轴的补丁中获取它: 你可能需要调整字符串格式和偏移量以使内容居中,也许使用from的宽度·,但这应该可以帮助你开始。除非你在某处跟踪偏移量,否则它可能不适用于堆积的条形图。

  • 我有点生气。我目前正在尝试在条形图的顶部绘制条形图值,但值未对齐。是否可以将值放在相应的条形图内?我做了一些挖掘,发现这在一定程度上帮助了我:python - 如何在酒吧图的顶部显示值 我的代码: