直方图是一种统计报告图,形式上也是一个个的长条形,但是,在通常情况下,直方图用长条形的面积表示频数,所以长条形的高度表示频数组距,宽度表示组距,其长度和宽度均有意义。当宽度相同时,一般就用长条形长度表示频数。
直方图一般用来描述等距数据,柱状图一般用来描述名称(类别)数据或顺序数据。直观上,直方图各个长条形是衔接在一起的,表示数据间的数学关系;条形图各长条形之间留有空隙,区分不同的类
1)柱状图一般用于描述离散型分类数据的对比
2)每根柱子宽度固定,柱子之间会有间距
3)横轴变量可以任意排序
1)直方图一般用于描述连续型数据的分布关系
2)每根柱子宽度可以不一样,且一般没有间距
3)横轴变量有一定顺序规则
plt.hist(datasets, bins, normed=False, facecolor=None, alpha=None)
参数解释:
主要形参:
datasets: 数据集列表, datasets中各个数据集的长度可以不等, 也可以传入numpy中的 2-D ndarray
bins: 直方图中箱子(bin)的个数
facecolor: 箱子的颜色
alpha: 箱子的透明度
normed: 决定直方图y轴取值是落在某个箱子中的元素的个数(normed=False或normed=0),
还是某个箱子中的元素的个数占总体的百分比(normed=True或normed=1)
import numpy as np
import matplotlib.pyplot as plt
normed=True(1),表示数据范围所占总体百分比。
np.random.seed(20170617)
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
#edgecolor设置长方形边框的颜色,用于区分
a,b,c=plt.hist(x, 50, normed=True, facecolor='g',edgecolor="black",alpha=0.75)
print(c)
np.random.seed():
这个函数控制着随机数的生成。当你将seed值设为某一定值,则np.random下随机数生成函数生成的随机数永远是不变的。更清晰的说,即当你把设置为seed(20170617),则你每次运行代码np.random.randn(100)产生的第一个随机数永远是-0.20532939;第二次用np.random.rand()产生的随机数永远是0.7151893663724195,以此类推。
如图:
2.改变normed,使y轴值为落在某个箱子中的元素的个数。
np.random.seed(20170617)
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
#edgecolor设置长方形边框的颜色,用于区分
a,b,c=plt.hist(x, 50, normed=0, facecolor='g',edgecolor="black",alpha=0.75)
print(c)
3.加两个竖线作为参考线
使用plt.axvline()方法
x = np.random.normal(600, 20, 1000)
plt.hist(x, bins=50, color='g')
plt.axvline(550)
plt.axvline(620)
plt.show()