为了账号安全,请及时绑定邮箱和手机立即绑定

将y轴格式化为百分比

将y轴格式化为百分比

largeQ 2019-12-20 10:02:39
我有一个用熊猫创建的现有情节,如下所示:df['myvar'].plot(kind='bar')y轴的格式为float,我想将y轴更改为百分比。我发现的所有解决方案都使用ax.xyz语法,并且我只能将代码放置在创建绘图的上方行下方(我无法在上面的行中添加ax = ax。)如何在不更改上面的行的情况下将y轴设置为百分比格式?这是我找到的解决方案,但需要重新定义图:import matplotlib.pyplot as pltimport numpy as npimport matplotlib.ticker as mtickdata = [8,12,15,17,18,18.5]perc = np.linspace(0,100,len(data))fig = plt.figure(1, (7,4))ax = fig.add_subplot(1,1,1)ax.plot(perc, data)fmt = '%.0f%%' # Format you want the ticks, e.g. '40%'xticks = mtick.FormatStrFormatter(fmt)ax.xaxis.set_major_formatter(xticks)plt.show()
查看完整描述

3 回答

?
开心每一天1111

TA贡献1836条经验 获得超12个赞

这已经晚了几个月,但是我用matplotlib 创建了PR#6251来添加一个新PercentFormatter类。使用此类,您只需要一行就可以重新格式化轴(如果算上的导入,则需要两行matplotlib.ticker):


import ...

import matplotlib.ticker as mtick


ax = df['myvar'].plot(kind='bar')

ax.yaxis.set_major_formatter(mtick.PercentFormatter())

PercentFormatter()接受三个参数,xmax,decimals,symbol。xmax允许您设置对应于轴上100%的值。如果数据的范围是0.0到1.0,并且要显示的范围是0%到100%,那么这很好。做吧PercentFormatter(1.0)。


其他两个参数允许您设置小数点和符号后的位数。它们分别默认为None和'%'。decimals=None将根据您显示的轴数自动设置小数点的数量。


更新资料


PercentFormatter 已在2.1.0版的Matplotlib中引入。


查看完整回答
反对 回复 2019-12-20
  • 3 回答
  • 0 关注
  • 932 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信