matplotlib在画频率分布直方图时显示y轴的数值比例



在论坛上找了好久都没解决,最后发现了一种写法,亲测有效~
首先导入相关模块

import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter
from numpy.random import randn
from matplotlib.font_manager import FontProperties

这里FuncFormatter是一个类,初始化是以一个方法为参数
接下来定义将数值转化为百分号的方法

def to_percent(y,position):
    return str(100*y)+"%"#这里可以用round()函数设置取几位小数

现在进入正题,画频率分布直方图

font=FontProperties(fname='/Library/Fonts/Songti.ttc')#这里设置字体,可以显示中文
x=randn(1000)
plt.hist(x,bins=30,weights=[1./len(x)]*len(x))#这里weights是每一个数据的权重,这里设置是1,weights是和x等维的列表或者series
fomatter=FuncFormatter(to_percent)
plt.gca().yaxis.set_major_formatter(fomatter)
plt.title("频率分布直方图",fontproperties=font)
plt.show()

代码运行结果如下
ok,如果想设置每根柱子的宽度可以使用rwidth的参数
ok,如果想设置每根柱子的宽度可以使用rwidth的参数!!
参考文献:
1.http://sofasofa.io/forum_main_post.php?postid=1000816

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值