1.直方图


直方图是用一系列不等高的长方形来表示数据,宽度表示数据范围的间隔,高度表示在给定间隔内数据出现的频数,长方形的高度跟落在间隔内的数据数量成正比,变化的高度形态反映了数据的分布情况。


2.导入相关库


Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 我们一般用到的是 Matplotlib 的 Pyplot 函数集合。

from matplotlib import pyplot as plt

Pyplot 中使用 hist( ) 绘制直方图,并以元组形式返回直方图的计算结果,包括各区间中元素数量,区间的取值范围,以及具体每个区间对象。


3.相关参数介绍


hist( x, bins=None, range=None, normed=False, # 超重要density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', rwidth=None, # 选用 orientation='vertical', color=None, edgecolor=None, label=None, # 常用stacked=False, **kwargs)
  • xxx:数组或者数组序列(不要求每个数组长度相同),用于存放数据

  • binsbinsbins:整数、序列或字符串,整数表示等宽区间的个数(直方图条形个数),自动计算区间范围,序列则表示区间的范围,除了最后一个以外,都是包含左边不包含右边,字符串则表示对应的策略,默认为 hist.bins

  • rangerangerange:元组,指定最小值和最大值(直方图数据的上下界),默认包含绘图数据中的最小值和最大值(默认以绘图数据的最小值作为直方图数据的上下界)

  • normednormednormed:是否将直方图的频数转化为频率


  • densitydensitydensity:布尔值,可选,如果为 True,则返回的是归一化的概率密度,所有区间的概率之和为1

  • weightweightweight:类似于数组的值,可选,形状和 xxx 相同,表示每个值对应的权重,默认情况下所有数据的权重相同

  • cumulativecumulativecumulative:布尔值或 -1,累积求和,表示小于某个数的所有元素个数之和,随着数的增大而不断增大,如果为 -1,则反转方向,表示大于某个数的所有元素个数之和,随着数量增大而不断减小

  • histtypehisttypehisttype:指定直方图的类型,默认为 bar。bar(多个并列摆放),barstacked(多个堆叠摆放),step(生成对应的折线),stepfilled(填充相关区域)

  • alignalignalign:设置条形边界值的对齐方式,默认为 mid,另外还有 left 和 right

  • rwidthrwidthrwidth:设置条形图的宽度


  • orientationorientationorientation:设置直方图的摆放方向,默认为垂直方向。

  • colorcolorcolor:设置直方图的填充色

  • edgecoloredgecoloredgecolor:设置直方图边框色

  • labellabellabel:设置直方图标签,可以通过 legend 展示其图例

  • stackedstackedstacked:当有多个数据时,是否需要将直方图呈堆叠摆放,默认水平摆放


4.绘图示例


这里以我自己正在做的一个问题为示例,至于其他参数,大家不妨自己去尝试使用一下。

绘图数据:

绘图代码:

plt.figure(figsize=(20,10))
matplotlib.rcParams['font.family'] = 'SimHei' # 显示中文
fre_tuple = plt.hist(id_array, bins=20, color='steelblue') # 返回值元组
plt.title('小区流量记录分布直方图', fontproperties='SimHei', fontsize=15)
plt.show()


id_array 最小值:1,最大值:2388,指定了 bins 为 20,则 hist( ) 将 1 到 2388 等距分割为 20 个区间,记录各个区间的频数

此时的区间划分和各区间频数为:


修改部分参数:

plt.figure(figsize=(20,10))
matplotlib.rcParams['font.family'] = 'SimHei'
fre_tuple = plt.hist(id_array, bins=20, color='steelblue', edgecolor='black', rwidth=0.8, orientation='horizontal')
plt.title('小区流量记录分布直方图', fontproperties='SimHei', fontsize=15)
plt.show()


修改 bins 参数,自定义划分区间:

plt.figure(figsize=(20,10))
matplotlib.rcParams['font.family'] = 'SimHei'
bins = np.linspace(0,1200,13).tolist()
bins.append(2500)
fre_tuple = plt.hist(id_array, bins=bins, color='steelblue', edgecolor='black', rwidth=0.8, orientation='horizontal')
plt.title('小区流量记录分布直方图', fontproperties='SimHei', fontsize=15)
plt.show()


修改后的 bins:


此时的区间间隔和频数:


5.添加数据标签

plt.figure(figsize=(20,10))
matplotlib.rcParams['font.family'] = 'SimHei'
fre_tuple = plt.hist(id_array, bins=20, color='steelblue', edgecolor='black', rwidth=0.8, orientation='horizontal')
plt.title('小区流量记录分布直方图', fontproperties='SimHei', fontsize=15)
x_loc = fre_tuple[0] # 频数
y_loc = fre_tuple[1] # 分割区间
for x,y in zip(x_loc,y_loc):# text:在指定位置上显示文本plt.text(x+2500, y+25, '%.0f' % x, ha='center', va= 'bottom',fontsize=15)# x,y 加上的数值可以自己结合要绘制的图形设定,用来调整标签的显示位置
plt.show()

matplotlib 绘制直方图相关推荐

  1. Python matplotlib绘制直方图

    Python matplotlib绘制直方图 前面的文章介绍了使用matplotlib绘制折线图.散点图和柱状图,柱状图参考:https://blog.csdn.net/weixin_43790276 ...

  2. matplotlib绘制直方图,饼图,散点图,气泡图,箱型图,雷达图

    matplotlib绘制直方图,饼图,散点图,气泡图,箱型图,雷达图 一.直方图 用10000个正态分布随机数画直方图 二.绘制饼图或者圆环图 圆环图 根据消费支出画圆环图 三.绘制散点图或气泡图 使 ...

  3. 第三章 使用 matplotlib 绘制直方图

    系列文章目录 第一章 使用 matplotlib 绘制折线图 第二章 使用 matplotlib 绘制条形图 第三章 使用 matplotlib 绘制直方图 第四章 使用 matplotlib 绘制散 ...

  4. 超详细的Python matplotlib 绘制直方图 赶紧收藏

    前言 经过前面对 matplotlib 模块从底层架构.基本绘制步骤等学习,我们已经学习了折线图.柱状图的绘制方法. 在分析数据的时候,我们会根据数据的特点来选择对应图表来展示,需要表示质量这一概念, ...

  5. python绘制直方图plt_Python:matplotlib绘制直方图

    使用hist方法来绘制直方图: 绘制直方图,最主要的是一个数据集data和需要划分的区间数量bins,另外你也可以设置一些颜色.类型参数: plt.hist(np.random.randn(1000) ...

  6. matplotlib绘制直方图之基本配置——万能模板案例

    目录 直方图介绍 绘制直方图的参数(plt.hist()) 连接数据库进行直方图绘制案例 使用dataframe里面的plot函数进行绘制(万能模板) 绘制多个子图(多子图直方图案例模板) 概率分布直 ...

  7. Python数据可视化第 7 讲:matplotlib绘制直方图函数hist

    1. hist 函数介绍 hist 函数用于绘制直方图,直方图本质上是一种统计图.hist 函数绘图数据由参数 x 提供,参数 x 提供多个数据,作为具有潜在不同长度的数据集列表([x0,x1,-]) ...

  8. Python matplotlib 绘制量场图

    复习回顾 matplotlib 是基于Python语言的开源项目,pyplot提供一系列绘制2D图形的方法.随着版本的迭代,matplotlib 模块也支持绘制3D图形mplot3d工具包,制作动态图 ...

  9. Python matplotlib 绘制等高线图

    前言 我们在往期对matplotlib.pyplot()方法学习,到现在我们已经会绘制折线图.柱状图.散点等常规的图表啦(往期的内容如下,大家可以方便查看往期内容) python入门到进阶,爬虫数据分 ...

  10. 这么详细的Python matplotlib 绘制图形 还不赶紧收藏

    前言 我们前面对matplotlib模块底层结构学习,对其pyplot类(脚本层)类提供的绘制折线图.柱状图.饼图.直方图等统计图表的相关方法,列举往期文章如下. 超详细的Python matplot ...

最新文章

  1. 获取oracle数据库war报告,Oracle 数据库开发及SQL基础实战
  2. Ubuntu下安装ruby的三种方式
  3. 计算机基础1模拟题,计算机基础模拟题1(有答案).doc
  4. YBTOJ:前缀数组(KMP)
  5. shell 脚本批量安装perl包
  6. Matlab DIP(瓦)ch8图像压缩练习
  7. 打开,另存为,属性,打印等14个JS代码
  8. smartupload 路径不存在_使用SmartUpload上传文件不成功
  9. 确定性的丧失——20世纪新启蒙运动的来龙去脉
  10. 【网络】解决校园网Wi-Fi登录页无法自动弹出
  11. 3个方法解决百度网盘限速 (2019-08-04 更新)
  12. gitlab 配置企业微信邮箱发送邮件
  13. 阿里设计师带你探讨UxD设计是什么?
  14. JAVA_OPTS设置
  15. 自然语言处理数据集收集
  16. python爬取百度百科保存scv
  17. 微信小程序 GET请求 与POST 请求
  18. 遗传算法的特性以及在具体算法应用中的应用
  19. 面向对象程序设计,实验一 C++函数程序设计
  20. 漫画|假如一个程序员有“社交牛逼症”

热门文章

  1. Kafka 常用命令
  2. 中级微观经济学笔记整理
  3. 计算机课件制作,多媒体课件制作photoshop和powerpoint教案
  4. FPGA与ASIC区别
  5. 树莓派安装anaconda
  6. html表格相同合并单元格,根据id相同,table表格动态合并
  7. 汽车电子控制系统的构成
  8. python俄罗斯方块小游戏实验报告_python实现俄罗斯方块游戏
  9. python重命名异常_Python:如何忽略异常并继续?
  10. Toad oracle