求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   模型库  
会员   
 


DeepSeek大模型应用开发实践
6月12-13日 厦门



基于 UML 和EA进行分析设计
6月23-24日 北京+线上



人工智能、机器学习& TensorFlow+Keras
6月22-23日 北京
 
追随技术信仰

随时听讲座
每天看新闻
 
 
Matplotlib教程
1.数据可视化是什么
2.Matplotlib是什么
3.Matplotlib下载和安装
4.Matplotlib.pyplot接口汇总
5.第一个Matplotlib绘图程序
6.PyLab绘制曲线图
7.Matplotlib figure图形对象
8.Matplotlib axes类使用详解
9.Matplotlib subplot()函数用法详解
10.Matplotlib subplots()函数详解
11.Matplotlib subplot2grid()函数详解
12.Matplotlib设置网格格式
13.Matplotlib设置坐标轴格式
14.Matplotlib设置坐标轴范围
15.Matplotlib设置刻度和标签
16.Matplotlib中文乱码解决方案
17.Matplotlib双轴图
18.Matplotlib设置刻度和标签
19.Matplotlib柱状图
20.Matplotlib直方图
21.Matplotlib饼状图
22.Matplotlib折线图
23.Python Matplotlib散点图
24.Matplotlib等高线图
25.Matplotlib振动图
26.Matplotlib箱型图
27.Matplotlib提琴图
28.Python Matplotlib 3D绘图详解
29.Matplotlib绘制文本
30.Matplotlib数学表达式
31.Matplotlib image图像处理
32.Matplotlib转换对象
 

 
目录
 
Matplotlib直方图
来源:C语言中文网
158 次浏览
13次  

直方图(Histogram),又称质量分布图,它是一种条形图的一种,由一系列高度不等的纵向线段来表示数据分布的情况。 直方图的横轴表示数据类型,纵轴表示分布情况。

首先,我们需要了解柱状图和直方图的区别。直方图用于概率分布,它显示了一组数值序列在给定的数值范围内出现的概率;而柱状图则用于展示各个类别的频数。

例如,我们对某工厂的员工年龄做直方图统计,首先我们要统计出每一位员工的年龄,然后设定一个 20 至 65 的数值范围,并将该数值范围细分为 4 个区间段 (20,35),(35,45),(45,55),(55,65) , 最后通过直方图的形式,展示该工厂员工在相应年龄区间的分布情况。

如果想要构建直方图,必须遵循以下步骤:

  • 将整个值范围划分为一系列区间。
  • 区间值(bin)的取值,不可遗漏数据;
  • 计算每个区间中有多少个值。

通常将 bin 指定为连续且不重叠的数值区间,而 bin 值指区间开始和结束的数值。

您可以使用下面的函数来绘制直方图:

  matplotlib.pyplot.hist()

该函数的参数说明如下:

x 必填参数,数组或者数组序列。
bins 可选参数,整数或者序列,bins 表示每一个间隔的边缘(起点和终点)默认会生成10个间隔。
range 指定全局间隔的下限与上限值 (min,max),元组类型,默认值为 None。
density 如果为 True,返回概率密度直方图;默认为 False,返回相应区间元素的个数的直方图。
histtype 要绘制的直方图类型,默认值为“bar”,可选值有 barstacked(堆叠条形图)、step(未填充的阶梯图)、stepfilled(已填充的阶梯图)。

以下示例绘制了班级学生得分情况的直方图。其中定义了四个区间(bins)分别是:0-25、26-50、51-75 和 76-100。直方图显示了相应范围的学生人数。

  1. from matplotlib import pyplot as plt
  2. import numpy as np
  3. #创建图形对象和轴域对象
  4. fig,ax = plt.subplots(1,1)
  5. a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
  6. #绘制直方图
  7. ax.hist(a, bins = [0,25,50,75,100])
  8. #设置坐标轴
  9. ax.set_title("histogram of result")
  10. ax.set_xticks([0,25,50,75,100])
  11. ax.set_xlabel('marks')
  12. ax.set_ylabel('no.of students')
  13. plt.show()

上述代码执行后,输出结果如下:

图1:直方图绘制结果


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



158 次浏览
13次