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

将条形图文本格式设置为小数点后2位

哈骞仕
2023-03-14

我的工作代码如下:

active_parking = pd.pivot_table(parking[parking['Bldg Status'] == 'ACTIVE'],
                                index='Owned/Leased',
                                values='Total Parking Spaces',
                                aggfunc='mean'
                                )
active_parking['% of Total'] = ((active_parking['Total Parking Spaces'] / active_parking['Total Parking Spaces'].sum()) * 100)
print(active_parking, '\n')

active_parking.plot(kind='bar')
for i, number in enumerate(active_parking['Total Parking Spaces']):
    plt.text(x=i, y=number, s=number, horizontalalignment='center', weight='bold')
for i, number in enumerate(active_parking['% of Total']):
    plt.text(x=i, y=number, s=number, horizontalalignment='left', weight='bold')
plt.xticks(rotation=0)
plt.show()

它产生以下输出:

              Total Parking Spaces  % of Total
Owned/Leased                                  
LEASED                   44.707349   37.546059
OWNED                    74.365997   62.453941 

但是我的情节有两个问题我似乎无法解决:

1)  I want the displayed value on top of each bar limited to two decimal places.
2)  After solving the above issue, how do I center the value over each bar?

即使我用pd.options.display.float_format = '{:.2f}格式裁剪文本显示,该图仍然显示14位小数。

共有1个答案

秦育
2023-03-14

使用:

active_parking.plot(kind='bar')
for i, number in enumerate(active_parking['Total Parking Spaces']):
    plt.text(x=i-.23, y=number + 0.9, s=round(number, 2), weight='bold')
for i, number in enumerate(active_parking['% of Total']):
    plt.text(x=i+.02, y=number + 0.9, s=round(number, 2), weight='bold')
plt.xticks(rotation=0)
plt.ylim(top=active_parking.values.max() + 8)
plt.show()
 类似资料:
  • 问题内容: 我正在尝试将双精度数格式化为精确到小数点后2位(如果有分数),然后使用DecimalFormat将其截断 因此,我想取得下一个结果: 变体#1 变体#2 有什么想法可以选择我的情况吗? 问题答案: 我达到的唯一解决方案是使用 if语句在这里提到 测试中 如果有人知道更优雅的方式,请分享!

  • 我有一个类文件Nepokretnost。java中的构造函数如下所示: 此外,我还为每个类字段提供了带有列的TableView。我的问题是双字段“povrsina”。我想从TextField设置它。 我将名为txtPovrsina的TextField的内容发送给双变量: 然后将所有字段放入TableView: 一切都很好,但我想要一些我不知道如何设置的应用程序行为。现在,当我在TextField中

  • 如何将结果四舍五入到小数点后2位并显示在结果标签上?我找到了一些陈述,但我对Swift是新手,实际上很难为我的项目重建样本。

  • 我试图做一个条形图,它将显示数据超过和低于基础起点,这不是0。 我尝试使用yAxes缩放选项的最小值和最大值,但它只是隐藏了超过设置最小值/最大值的条形图,并将“beginAtZero”设置为false。

  • 问题内容: 我有一个用netbeans开发的应用程序,我想在显示面板时将焦点设置为一定。我已经阅读了许多文章,并尝试了各种方法,但没有奏效。主要问题之一是在哪里放置所需的代码,我认为在我的情况下是 有一些指示使用Window Listener的帖子,但是随着netbeans生成GUI,我无法看到如何实现接口,因为我无法编辑创建jPANEL等的代码。整个过程非常令人沮丧,我真的没有相信这应该很困难。

  • 如何使用为给定的(默认区域设置就足够了)和给定的小数位数设置值的格式? 例如,我有这些值: 我想以以下方式打印它们,例如,我们的区域设置和小数点后2位: 现在,我如何设置一个NumberFormat总是显示2位小数点,但是基于当前区域设置显示千位分隔符和小数点呢?