我有一个用熊猫创建的现有情节,如下所示: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条经验 获得超13个赞
这已经晚了几个月,但是我用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中引入。
添加回答
举报
0/150
提交
取消