直方图是用于展示数据的分组分布状态的一种图形,用矩形的宽度和高度表示频数分布,通过直方图,用户可以很直观的看出数据分布的形状、中心位置以及数据的离散程度等。

在python中一般采用matplotlib库的hist来绘制直方图,至于如何给直方图添加拟合曲线(密度函数曲线),一般来说有以下两种方法。

方法一:采用matplotlib中的mlab模块

mlab模块是Python中强大的3D作图工具,立体感效果极佳。在这里使用mlab可以跳出直方图二维平面图形的限制,在此基础上再添加一条曲线。在这里,我们以鸢尾花iris中的数据为例,来举例说明。

以上为通过python导入鸢尾花iris数据,然后提取第一列的sepal-length变量为研究对象,计算出其均值、标准差,接下来就绘制带拟合曲线的直方图。

以上命令主要采用mlab.normpdf基于直方图的柱子数量、均值、方差来拟合曲线,然后再用plot画出来,这种方法的一个缺点就是画出的正态分布拟合曲线(红色虚线)并不一定能很好反映数据的分布情况,如上图所示。

方法二:采用seaborn库中的distplot绘制

Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。

在这里主要使用sns.distplot(增强版dist),柱子数量bins也设置为30,kde=True表示是否显示拟合曲线,如果为False则只出现直方图。

在这里注意一下它与前边mlab.normpdf方法不同的是,拟合曲线不是正态的,而是更好地拟合了数据的分布情况,如上图,因此比mlab.normpdf更为准确。

进一步设置sns.distplot,可以采用kde_kws(拟合曲线的设置)、hist_kws(直方柱子的设置),可以得到:

其中,lw为曲线粗细程度。

python直方图拟合曲线_用Python为直方图绘制拟合曲线的两种方法相关推荐

  1. python怎么在图片上写字_Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.Ope ...

  2. 怎样在python的turtle中输入文字_Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.Ope ...

  3. python统计汉字个数是_python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...

  4. python怎么统计多少字符_python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...

  5. python 学习系列(3) 读取并显示图片的两种方法

    python 读取并显示图片的两种方法 在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 mat ...

  6. python获取剪切板图片_python 获取剪切板内容的两种方法

    第一种 # -*- coding: utf-8 -*- # @Time : 2020/3/16 21:26 # @File : get_text_from_cupboard_13.py # @Auth ...

  7. arduino win10闪退_解决Win10天气应用闪退的两种方法

    Windows系统中都自带天气应用,但是安装了Win10系统后,就发现,打开天气应用出现闪退的情况,其他应用都正常,这要怎么解决呢?下面小编告诉大家解决Win10天气应用闪退的两种方法. 方法一 1. ...

  8. 局域网只看到少数电脑_利用局域网高速传输大文件的两种方法

    点击蓝字,关注我们 说到传输文件,我们可能很容易想到使用微信或者QQ发送文件,如果没有连接网络的话,可以考虑使用U盘或数据线,当然也可以使用第三方的共享文件,比如说茄子快传.以上方法的缺点自然是很明显 ...

  9. python杨辉三角居中_python打印杨辉三角的两种方法及详解

    艾斯压阵 1c950a7b02087bf4200394cdf1d3572c11dfcf23.jpg 一盏灯, 一片昏黄: 一简书, 一杯淡茶. 守着那一份淡定, 品读属于自己的寂寞. 保持淡定, 才能 ...

  10. Python 技术篇-通过进程名称、PID杀死windows进程的两种方法,获取当前运行程序的pid

    方法一: 利用 os 杀死进程. import os# 通过进程名称杀死进程 os.system('taskkill /f /im %s' % 'python.exe')# 通过pid杀死进程 os. ...

最新文章

  1. 【转载】Asp.Net MVC3网站并成功的连接了MongoDB
  2. IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) A. Bear and Three Balls 水题
  3. Py之albumentations:albumentations库函数的简介、安装、使用方法之详细攻略
  4. linux可以装在硬盘吗,在硬盘上安装Linux系统
  5. 08 comet反向ajax
  6. 信息安全工程师笔记-操作系统安全保护
  7. C++之try,throw,catch探究
  8. 三种分布式锁 简易说说(包含前一篇提到的redis分布式锁)
  9. 【分享】时至今日,深度学习领域有哪些值得追踪的前沿研究?
  10. php薪资图表,加薪利器,老板再也不用担心生成图表图片了
  11. java使用derby增删改查_JDBC 笔记3 通过PreparedStatement 对数据库进行增删改查 (转载)...
  12. 帧中继的基本配置(Basic FrameRealy)
  13. 超详解代理服务器的使用方法
  14. 《运算放大器权威指南(Op Amps for Everyone)》读书笔记(一)
  15. c语言大学教程答案pdf,C++大学教程(第九版) 保罗·戴特尔(Paul Deitel)等著 完整中文pdf扫描版[197MB]...
  16. BZOJ1776: [Usaco2010 Hol]cowpol 奶牛政坛
  17. World Streamer学习1
  18. ES6字符串新增方法
  19. 上海大学计算机学院在哪个校区,【CES·迎新】上海大学宝山校区全攻略——你关注的这里都有...
  20. AtCoder ABC 249

热门文章

  1. 【电气专业知识问答】问:高压变频器有哪些特殊技术要求?
  2. 关于分贝(DB)的认识
  3. lambda在python_在Python中使用lambda高效操作列表的教程
  4. 第一章:网页开发基础
  5. 股票策略 —— 戴维斯双击
  6. 心、肝、脾、肺、肾逐个说
  7. 立方阶时间复杂度 O(n^3) 详解
  8. windows10 k8s_什么是Windows 10 S,它有什么不同?
  9. 展望2022元宇宙会有哪些趋势
  10. 量子侦探社-区块链探案