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

顶部蟒蛇身上值的条形图图

解晟睿
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

试试这个:

def autolabel(rects, height_factor=1.05):
    # attach some text labels
    for rect in rects:
        height = rect.get_height()
        ax.text(rect.get_x() + rect.get_width()/2., height_factor*height,
                '%d' % int(height),
                ha='center', va='bottom')


In [48]: df
Out[48]:
   Total_orders  frequency
0           0.0   18679137
1           1.0     360235
2           2.0      68214
3           3.0      20512
4           4.0       7211
5          50.0         12

In [49]: import matplotlib

In [50]: matplotlib.style.use('ggplot')

In [51]: ax = df.plot.bar(x='Total_orders', y='frequency', rot=0, width=0.85, alpha=0.6, figsize=(14,12))

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

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

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

  • 如何在matplotlib中绘制多个条形图,当我多次尝试调用bar函数时,它们重叠,如下图所示,最高值红色只能看到。如何在x轴上绘制带有日期的多个条形图? 到目前为止,我尝试了这个: 我得到了这个: 结果应该是这样的,但是日期在x轴上,横条彼此相邻:

  • 我正在运行Ubuntu 18.04。 我使用mysql连接器-python连接Python到MySQL。 我使用的是Python 3.6.7,并且已经安装了mysql连接器-python。 我已经安装了mysql连接器-python-py3_8.0.13-1ubuntu18.10_all.deb. 在运行Python脚本时,mysql。连接器模块似乎加载正确,但脚本在碰到光标时失败。next()具

  • 假设我有一些资源,我想在用python编写的aws lambda中的不同请求之间共享。我应该如何实现这一点? 是否有“启动后”挂钩,或者我应该在第一次调用时惰性地创建资源?“延迟初始化”的缺点是,它意味着一些请求会随机变慢,因为您选择了一个消费者来承担启动成本。 此外…这些资源会在lambda可执行文件被“冻结”后幸存下来吗? 本页https://docs.aws.amazon.com/lambd