赵走x博客
网站访问量:151451
首页
书籍
软件
工具
古诗词
搜索
登录
深入浅出Python机器学习:31、自动特征选择
深入浅出Python机器学习:30、数据“升维”
深入浅出Python机器学习:29、数据表达
深入浅出Python机器学习:28、聚类算法
深入浅出Python机器学习:27、特征提取
深入浅出Python机器学习:26、数据降维
深入浅出Python机器学习:25、数据预处理
深入浅出Python机器学习:24、神经网络实例一一手写识别
深入浅出Python机器学习:23、神经网络的原理及使用
深入浅出Python机器学习:22、神经网络的前世今生
深入浅出Python机器学习:21、SVM 实例一一波士顿房价回归分析
深入浅出Python机器学习:20、SVM 的核函数与参数选择
深入浅出Python机器学习:19、支持向量机SVM 基本概念
深入浅出Python机器学习:18、随机森林实例一一要不要和中目亲对象进一步发展
深入浅出Python机器学习:17、随机森林
深入浅出Python机器学习:16、决策树
深入浅出Python机器学习:15、朴素贝叶斯实战一一判断肿瘤是良性还是恶性
深入浅出Python机器学习:14、朴素贝叶斯算法的不同方法
深入浅出Python机器学习:13、朴素贝叶斯基本概念
深入浅出Python机器学习:12、使用L1 正则化的线性模型一一套索回归
深入浅出Python机器学习:11、使用L2 正则化的线性模型一一岭回归
深入浅出Python机器学习:10、最基本的线性模型一一线性回归
深入浅出Python机器学习:9、线性模型的墓本概念
深入浅出Python机器学习:8、K 最近邻算法项目实战一一酒的分类
深入浅出Python机器学习:7、K最近邻算法用于回归分析
深入浅出Python机器学习:6、K最近邻算法处理多元分类任务
深入浅出Python机器学习:5、k最近邻算法在分类任务中的应用
深入浅出Python机器学习:4、K 最近邻算法的原理
深入浅出Python机器学习:3、一些必需库的安装及功能简介
深入浅出Python机器学习:2、基于python i吾言的环境配置
深入浅出Python机器学习:1、概述
人脸数据集加载faces = fetch_lfw_people()报错
31、直方图
74、插件开发:Android端API实现
Python3之socket编程--3:基于UDP的套接字
15、使用 jQuery 处理 Ajax 请求
31、直方图
资源编号:76045
人工智能
深入浅出Python机器学习
热度:120
直方图是用来展现连续型数据分布特征的统计图形。利用直方图我们可以直观地分析出数据的集中趋势和波动情况。本节我们介绍直方图的应用场景和绘制原理。
直方图是用来展现连续型数据分布特征的统计图形。利用直方图我们可以直观地分析出数据的集中趋势和波动情况。本节我们介绍直方图的应用场景和绘制原理。 # 1、应用场景:定量数据的分布展示 直方图主要是应用在定量数据的可视化场景中, 或者是用来进行连续型数据的可视化展示。比如, 公共英语考试分数的区间分布、抽样调查中的人均寿命的分布特征以及居民可支配收入的分布、特征。 # 2、绘制原理 我们以Python代码的形式讲解直方图的绘制原理, 主要讲解hist()函数的使用方法。 ### 代码实现 ``` import matplotlib as mpl mpl.rcParams['font.sans-serif']=['SimHei'] mpl.rcParams['axes.unicode_minus']=False import matplotlib.pyplot as plt import numpy as np x=np.random.randint(0,100,100) # plot histogram bins=range(0,101,10) plt.hist(x,bins=bins,color='#377eb8',histtype='bar',rwidth=10) # setx x,y-axis label plt.xlabel('测试成绩') plt.ylabel('学生人数') plt.show() ``` ### 运行结果  ### 代码精讲 首先,我们先解释一下函数`plt.hist(x,bins=bins,color='#377eb8',histtype='bar',rwidth=10)`的参数含义: * x:连续型数据输入值。 * bins:用于确定柱体的个数或是柱体边缘范围。 * color:柱体的颜色。 * histtype:柱体类型。 * label:图例内容。 * rwidth:柱体宽度。 代码中的变量 scoresT代表人数是100人的班级考试成绩,bins用来确定每个柱体包含的数据范围,除了最后一个柱体的数据范围是闭区间,其他柱体的数据范围都是左闭右开区间,例如第一个柱体的数据范围是[0,10),最后一是柱状类型,将班级的考试成绩展示出来。个柱体的数据范围是[90, 100]。 直方图的颜色是蓝色,直方图类型是柱状类型,将班级的考试成绩展示出来。 # 3、直方图和柱状图的关系 前面已经讲过有关柱状图和直方图的概念和绘制方法,下面,我们就来探讨关于直方图和柱状图的关系。 一方面,直方图和柱状图在展现效果上是非常类似的,只是直方图描述的是连续型数据的分布,柱状图描述的是离散型数据的分布,也可以讲: 一个是描述定量数据;另一个是描述定性数据。 另一个方面,从图形展示效果来看,柱状图的柱体之间有空隙,直方围的柱体之间没有空隙。方图和柱状图的展示效果的差别。 本节我们讲解了直方图的绘制原理, 同时讨论了柱状图与直方图的区别和联系。下面, 我们就结合本章的知识讲解绘制堆积直方图和直方图的不同形状的实践案例。通过这些案例, 使读者深刻理解直方图的功能和使用方法, 以及理解直方图的合适应用场景。 # 4、堆积直方图 我们可以像前面讲过的绘制堆积柱状图那样绘制堆积直方图, 用来比较定量数据的分布差异和分布特征。实现方法也非常简单, 只需要添加具体的关键字参数就可以实现堆积直方图的绘制任务。下面, 我们就辅助以简单案例来介绍和说明堆积直方图的绘制方法。 ### 代码实现 ``` import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np mpl.rcParams['font.sans-serif']=['SimHei'] mpl.rcParams['axes.unicode_minus']=False # set test scores scoresT1=np.random.randint(0,100,100) scoresT2=np.random.randint(0,100,100) x=[scoresT1,scoresT2] colors=['#8dd3c7','#bebada'] labels=['班级A','班级B'] bins=range(0,101,10) plt.hist(x,bins=bins,color=colors,histtype='bar', rwidth=10,stacked=True,label=labels) # set x,y-axis label plt.xlabel('测试成绩') plt.ylabel('学生人数') plt.title('不同班级的测试成绩的直方图') plt.legend(loc='upper left') plt.show() ``` ### 运行结果  ###代码精讲 我们通过向函数hist()传递关键字参数stacked来实现堆积直方图的绘制任务。 通过绘制堆积直方图, 就可以直观地观察两个班级的学生在测试中考试成绩的分布特点和知识掌握情况的差异。 如果不绘制堆积直方图, 那么我们可以绘制并排放置的直方图, 即 “stacked=False”,如图3.15所示。  # 5、直方图的不同形状 前面我们讲过阶梯图的绘制方法和展示效果。 将直方图和阶梯图的特点结合起来即可绘制阶梯型直方图, 当然也可以绘制堆积阶梯型直方图。我们只需要向函数hist()传递关键字参数histtype就可以绘制阶梯型直方图。 下面, 我们在堆积直方图的基础上, 绘制堆积阶梯型直方图。 ### 代码实现 ``` import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np mpl.rcParams['font.sans-serif']=['SimHei'] mpl.rcParams['axes.unicode_minus']=False # set test scores scoresT1=np.random.randint(0,100,100) scoresT2=np.random.randint(0,100,100) x=[scoresT1,scoresT2] colors=['#8dd3c7','#bebada'] labels=['班级A','班级B'] bins=range(0,101,10) plt.hist(x,bins=bins,color=colors,histtype='stepfilled', rwidth=10,stacked=True,label=labels) # set x,y-axis label plt.xlabel('测试成绩') plt.ylabel('学生人数') plt.title('不同班级的测试成绩的直方图') plt.legend(loc='upper left') plt.show() ``` ### 运行结果  ### 代码精讲 我们看到, 堆积阶梯型直方图兼具阶梯图和直方图的特征, 借助堆积阶梯型直方图就可以清楚地观察每个班级的学生测试成绩的分布特点以及不同班级之间的成绩差异。