Python中文
首页
教程
问答
标签
搜索
登录
注册
可以使用python3的数字格式将数字四舍五入到百位、千位等
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<h2>具体问题</h2> <p>我正试图打印出一张<code>seaborn</code>热图中单元格顶部的数字。例如,类似于:</p> <pre><code>ax = sns.heatmap(flights, annot=True, fmt=",") </code></pre> <p>(这是直接取自<a href="https://stanford.edu/~mwaskom/software/seaborn/generated/seaborn.heatmap.html#seaborn.heatmap" rel="nofollow noreferrer">^{<cd1>}'s documentation</a>,调整为python3友好的。因此,如果导入<code>seaborn</code>,则可以开箱即用地运行相同的示例。)</p> <hr/> <p>这就产生了一个相当体面的人物,如下图所示:</p> <p><a href="https://i.stack.imgur.com/3muWk.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/3muWk.png" alt="heatmap, not quite ideal"/></a></p> <p>但是,我希望看到数字四舍五入到最接近的<strong><em>百</em></strong>。换句话说,我希望看到像171这样的数字写成200,315写成300,等等</p> <hr/> <h2>想法</h2> <p>在引擎盖下,<code>seaborn</code>实际上只是<code>matplotlib</code>。我可以使用<code>matplotlib</code>的<a href="http://matplotlib.org/users/text_props.html" rel="nofollow noreferrer">^{<cd7>} methods</a>。在</p> <p><code>matplotlib</code>的文本依赖于python3的<a href="https://docs.python.org/3.1/library/string.html" rel="nofollow noreferrer">text formatting</a>,它有方便的方法将<strong><em>舍入到小数点的右边,方法是做类似<code>.2</code>四舍五入到第一百位***,但我找不到任何东西可以往另一个方向舍入。在</p> <hr/> <p>我可以简单地将数字四舍五入,然后再把它们推到绘图中,但这实际上会改变绘图数据本身,我宁愿避免这种情况。因此,我希望将传递给绘图的<strong><em>底层数字保持不变,同时仍然能够很好地打印内容。在</p> <hr/> <p>据我所知,要做到这一点,唯一的办法就是找到一种巧妙的方式来格式化事物。有办法吗?在</p> <p>谢谢!在</p> <h2>更新</h2> <p>我深入研究了<a href="https://github.com/mwaskom/seaborn/blob/76655613b5e87e4908f125ebfcc0f77c25772100/seaborn/matrix.py" rel="nofollow noreferrer">^{<cd1>}'s code</a>,试图理解为什么La Rooy下面的聪明解决方案对我不起作用。在</p> <p><code>seaborn</code>代码中的相关行是:</p> ^{pr2}$ <hr/> <p>但是,要使其工作,我需要能够修改我的<code>pandas</code>dataframe列,这意味着我需要能够调整<code>nd.array</code>元素的列。在</p> <p>似乎有<a href="https://github.com/numpy/numpy/issues/5543" rel="nofollow noreferrer">not yet any underlying ^{<cd14>} method for a ^{<cd15>} array</a>,但有人努力创建一个。在</p> <p>所以,我暂时不想再讨论这个问题了,我希望一旦事情解决了,我将能够采用拉鲁伊的解决方案,事情应该“奏效”。在</p> <p>一旦发生这种情况,解决办法是:</p> <pre><code>>>> class rndarray(np.ndarray): ... def __format__(self, spec): ... return np.ndarray.__format__(int(round(self, -2)), spec) ... >>> df['<col_of_interest>'] = map(rndarray, df['<col_of_interest.']) </code></pre> <p>或者,如果不起作用,那么:</p> <pre><code>>>> df['<col_of_interest>'].values = map(rndarray, df['<col_of_interest.'].values) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>是的</p> <pre><code>'{:.0f}00'.format(yourNumber / 100.0) </code></pre> <p>为每一个细胞解决你的问题?在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
5 回答
如何添加表示整数的擦边字符串?
3 回答
如何添加要在Bokeh中使用的新font.ttf文件?
8 回答
如何添加要显示的矩阵XY轴编号和XY轴
9 回答
如何添加计数?
9 回答
如何添加计数器函数?
9 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
7 回答
如何添加计数器来跟踪while循环中的月份和年份?
3 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
4 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
9 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
4 回答
如何添加评论拉梅尔亚姆
4 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
1 回答
如何添加谷歌地点自动完成到Flask?
5 回答
如何添加超时、python discord bot
1 回答
如何添加超过1dp的检查
10 回答
如何添加距离方法
4 回答
如何添加跟随游戏的敌人精灵
6 回答
如何添加路径以便python可以找到程序?
2 回答
如何添加身份验证/安全性以使用happybase访问HBase?
5 回答