文章目录
一、初步
对于大量样本来说,如果想快速获知其分布特征,最方便的可视化方案就是直方图,即统计落入不同区间中的样本个数。
以正态分布为例
python
import numpy as np
import matplotlib.pyplot as plt
xs = np.random.normal(0, 1, size=(5000))
fig = plt.figure()
for i,b in enumerate([10, 50, 100, 200],1):
ax = fig.add_subplot(2,2,i)
plt.hist(xs, bins=b)
plt.show()
其中bins参数用于调控区间个数,出图结果如下
二、参数
直方图函数的定义如下
python
hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, *, data=None, **kwargs)
除了x和bins之外,其他参数含义为
- range 绘图区间,默认将样本所有范围纳入其中
- density 为True时,纵坐标单位是占比
- weights 与x个数相同,表示每个值所占权重
- cumulative 为True时,将采取累加模式
- bottom y轴起点,有了这个,可以对直方图进行堆叠
- histtype 绘图类型
- align 对其方式,可选left, mid, right三种,代表左中右
- oritentation 绘制方向,可选vertical和horizontal两种
- rwitdth 数据条宽度
- log 为True时,开启对数坐标
- color, label 颜色,标签
- stacked
三、绘图类型
histtype共有4个选项,分别是bar, barstacked, step以及stepfilled,其中barstacked表示堆叠,下面对另外三种参数进行演示
python
types = ['bar', 'step', 'stepfilled']
fig = plt.figure()
for i,t in enumerate(types,1):
ax = fig.add_subplot(1,3,i)
plt.hist(xs, bins=50, histtype=t, rwidth=0.5)
plt.show()
效果如下
堆叠直方图,就是把多个直方图叠在一起
python
bins = [10, 30, 100]
ws = [1, 0.7, 0.5]
for b,w in zip(bins, ws):
print(b,w)
plt.hist(xs, bins=b, density=True,
histtype='barstacked', rwidth = w, alpha=w)
plt.show()
效果如下
四、多组数据直方图对比
直方图中设置了rwidth选项,这意味着可以通过合理安排数据条宽度,以实现多组数据直方图在一个图像中更加
python
N = 10000
labels = ["norm", "power", "poisson"]
data = np.array([
np.random.normal(0, 1, size=N)**2,
np.random.power(5, size=N),
np.random.uniform(0, 1, size=N)
]).T
plt.hist(data, 50, density=True, range=(0,1), label=labels)
plt.legend()
plt.show()
其中,data为3组统计数据,hist函数会自行规划画布,效果如下
【最新Python全套从入门到精通学习资源,文末免费领取!】
Python技术资源分享
如果你对Python感兴趣,学好 Python 不论是就业、副业赚钱、还是提升学习、工作效率,都是非常不错的选择,但要有一个系统的学习规划。
小编是一名Python开发工程师 ,自己整理了一套 【最新的Python系统学习教程】 ,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。
如果你是准备学习Python或者正在学习,下面这些你应该能用得上:
1、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
2、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
3、精品书籍
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
4、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
5、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
6、清华编程大佬出品《漫画看学Python》
用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。
7、Python副业兼职与全职路线
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
👉CSDN大礼包:《Python入门资料&实战源码&安装工具】免费领取(安全链接,放心点击)