目录

一、matplotlib.pyplot.hist()语法

二、绘制直方图

①绘制简单直方图

②:各个参数绘制的直方图

(1)histtype参数(设置样式bar、barstacked、step、stepfilled)

(2)range参数(指定直方图数据的上下界,默认包含绘图数据的最大值和最小值(范围))

(3)orientation参数 (设置直方图的摆放位置,vertical垂直方向 horizontal水平方向,默认值:vertical垂直方向)

(4)density参数(bool值,True:将坐标轴转化为密度刻度,默认值:None)

(5)weights参数(为每个数据点设置权重)

(6)cumulative参数(bool值,是否需要计算累计频数或频率,默认值:False)

(7)bottom参数(为直方图添加基准线)

(8)align参数(设置条形边界值的对其方式,mid、left、right,默认值:mid)

(9)rwidth参数(设置直方图条形宽度的百分比)

(10)log参数(bool值,对绘图数据进行log变换 默认值:False)

(11)stacked参数(bool值,当有多个数据时,是否需要将直方图呈堆叠摆放,默认值:False水平摆放)

(12)直方图所有参数展示

三、在直方图上画折线图


一、matplotlib.pyplot.hist()语法

hist(x, bins=None, range=None, density=False,weights=None, cumulative=False,
bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None,log=False, color=None, label=None, stacked=False, *, data=None, **kwargs)
plt.hist(x,# 指定要绘制直方图的数据bins,# 设置长条形的数目range,# 指定直方图数据的上下界,默认包含绘图数据的最大值和最小值(范围)density=True or False, # 如果"True",将y轴转化为密度刻度 默认为Noneweights,# 该参数可为每一个数据点设置权重cumulative=True or False,# 是否需要计算累计频数或频率 默认值Falsebottom=0, # 可以为直方图的每个条形添加基准线,默认为0histtype={'bar', 'barstacked', 'step', 'stepfilled'} # 设置样式# bar柱状形数据并排,默认值。# barstacked在柱状形数据重叠并排(相同的在一起)# step柱状形颜色不填充 # stepfilled填充的线性align='mid' or 'left' or 'right', # 设置条形边界值的对其方式,默认为mid,除此还有’left’和’right’orientation={'vertical', 'horizontal'},# 设置直方图的摆放方向,默认为垂直方向verticalrwidth,# 设置直方图条形宽度的百分比log=True or False,# 是否需要对绘图数据进行log变换 默认值Falsecolor='r',# 设置直方图的填充色label, # 设置直方图的标签stacked=True or False, # 当有多个数据时,是否需要将直方图呈堆叠摆放,默认False水平摆放;facecolor,# 设置长条形颜色(和color效果一致,设置color就不用再设置facecolor)edgecolor,# 设置边框的颜色alpha # 设置透明度
)
# 注意组距,得到满意的展示效果
# 注意y轴所代表的变量是频数还是频率

二、绘制直方图

①绘制简单直方图

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)# bins设置长条形的数目
plt.hist(data,bins=10)plt.show()

②:各个参数绘制的直方图

(1)histtype参数(设置样式bar、barstacked、step、stepfilled)

1. bar:柱状形数据并排(因为bar是默认值,可以不写)

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10)plt.show()

 2. barstacked:在柱状形数据重叠并排(相同的在一起)

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,histtype='barstacked')plt.show()

 3. step:柱状形颜色不填充 

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,histtype='step')plt.show()

 4. stepfilled:生成一个默认填充的线图

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,histtype='stepfilled')plt.show()

(2)range参数(指定直方图数据的上下界,默认包含绘图数据的最大值和最小值(范围))

不想显示数据全部范围,只想查看数据某一个范围内的数据。(例:下图数据范围为140~180之间,只想查看150~170之间的数据)

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,histtype='bar',range=(150,170))plt.show()

(3)orientation参数 (设置直方图的摆放位置,vertical垂直方向 horizontal水平方向,默认值:vertical垂直方向)

垂直方向(默认垂直,可以不写):

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10)plt.show()

horizontal水平方向:

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,orientation='horizontal')plt.show()

(4)density参数(bool值,True:将坐标轴转化为密度刻度,默认值:None)

直方图为垂直方向时,观察y轴:

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,density=True)plt.show()

直方图为水平方向时,观察x轴:

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,orientation='horizontal',density=True)plt.show()

(5)weights参数(为每个数据点设置权重)

直方图为垂直方向时,观察y轴:

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,weights=data)plt.show()

直方图为水平方向时,观察x轴:

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,orientation='horizontal',weights=data)plt.show()

(6)cumulative参数(bool值,是否需要计算累计频数或频率,默认值:False)

频数:指事件发生的次数

频率:指次数占总次数n的比例

频率=频数/n

直方图为垂直方向时:

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,cumulative=True)plt.show()

直方图为水平方向时:

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,orientation='horizontal',cumulative=True)plt.show()

(7)bottom参数(为直方图添加基准线)

直方图为垂直方向时,观察y轴:

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,bottom=170)plt.show()

直方图为水平方向时,观察x轴:

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,orientation='horizontal',bottom=170)plt.show()

(8)align参数(设置条形边界值的对其方式,mid、left、right,默认值:mid)

mid(默认值可以不写):

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10)plt.show()

left:

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,align='left')plt.show()

right:

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,align='right')plt.show()

(9)rwidth参数(设置直方图条形宽度的百分比)

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,rwidth=0.5)plt.show()

(10)log参数(bool值,对绘图数据进行log变换 默认值:False)

直方图为垂直方向时,观察y轴:

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,log=True)plt.show()

直方图为水平方向时,观察x轴:

import matplotlib.pyplot as plt
import numpy as npdata=np.random.randint(140,180,200)plt.hist(data,bins=10,orientation='horizontal',log=True)plt.show()

(11)stacked参数(bool值,当有多个数据时,是否需要将直方图呈堆叠摆放,默认值:False水平摆放)

stacked=False时:(水平摆放)

import matplotlib.pyplot as plt
import numpy as npx=np.random.randint(140,180,200)
y=np.random.randint(140,180,200)plt.hist([x,y], bins=10)plt.show()

stacked=True时:(堆叠摆放)

import matplotlib.pyplot as plt
import numpy as npx=np.random.randint(140,180,200)
y=np.random.randint(140,180,200)plt.hist([x,y], bins=10,stacked=True)plt.show()

(12)直方图所有参数展示:

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.sans-serif']=['FangSong']fig=plt.figure(figsize=(8,8))
data=np.random.randint(140,180,200)# data数据
# bins设置长条形的个数
# histtype设置样式 barstacked:在柱状形数据重叠并排(相同的在一起)
# range显示范围
# cumulative累计频数
# align设置边界对齐值为中心对齐
# orientation设置摆放方向为horizontal水平方向
# rwidth设置长条形宽度的百分比为20
# color设置长条形的填充颜色为#FFB6C1
# label设置直方图的标签
# edgecolor设置长条形边框线为#FFD700
# alpha设置长条形的透明度为0.5
# density=True 长条形呈水平方向:density将x轴转换为密度刻度  长条形呈垂直方向:density将y轴转换为密度刻度
# weights=data为每个数据点设置权重
# bottom设置基准线为15000
# log=True是否对数据进行log转换
plt.hist(data,bins=10,histtype='barstacked',range=(140,170),cumulative=True,align='mid',orientation='horizontal',rwidth=20,color='#FFB6C1',label='数量',edgecolor='#FFD700',alpha=0.5,weights=data,bottom=10000,log=False)plt.xticks(size=20) # x轴刻度值大小
plt.yticks(size=20) # y轴刻度值大小plt.title('hist',size=30) # 设置直方图标签
plt.xlabel('x轴',size=15) # 设置x轴标签
plt.ylabel('y轴',size=20) # 设置y轴标签plt.rcParams.update({'font.size':20})  # 修改图例字体大小plt.legend()
plt.show()

三、在直方图上画折线图

import matplotlib.pyplot as plt
import numpy as npx=np.random.normal(100,15,10000)
y=np.random.normal(80,15,10000)# density=True设置为密度刻度
n1, bins1, patches1 = plt.hist(x, bins=50,  density=True, color='#00B8B8', alpha=1)
n2, bins2, patches2 = plt.hist(y, bins=50,  density=True, color='r', alpha=0.2)plt.plot(bins1[:-1],n1,':',lw=3)
plt.plot(bins2[:-1],n2,'--',lw=3)plt.show()

matplotlib.pyplot.hist()绘制直方图相关推荐

  1. matplotlib hist 绘制直方图 bar 绘制条形图 API

    https://matplotlib.org/api/_as_gen/matplotlib.pyplot.hist.html#matplotlib.pyplot.hist

  2. python excel 图表 matplotlib_Python数据可视化:matplotlib 常见图表绘制——直方图

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:斑点鱼 matplotlib常见图表绘制--直方图 series.h ...

  3. Python matplotlib.pyplot.hist函数 参数详解(超详细的!)

    matplotlib.pyplot.hist函数 参数详解 函数内容 matplotlib.pyplot.hist(x, bins=None, range=None, normed=False, we ...

  4. plt.hist绘制直方图参数density 为True和False分别代表是否归一化 参数orientation决定了是采用纵轴代表频率还是横轴代表频率的展现形式

    plt.hist绘制直方图参数density  为True和False分别代表是否归一化 参数orientation决定了是采用纵轴代表频率还是横轴代表频率的展现形式 plt.figure() plt ...

  5. matplotlib.pyplot.hist(柱状图)

    matplotlib.pyplot.hist(x, bins=None, range=None, normed=False, weights=None, cumulative=False, botto ...

  6. opencv python matplotlib.pyplot.hist() 如何绘制灰度直方图,如何根据灰度直方图确定最优二值化值

    什么是灰度直方图? 图像直方图(histogram)是图像的统计学特征,常用于了解图像的基本特征以便分析.不过图像的直方图不具有空间特征. 图像的灰度直方图(histogram),就是将图像转化成灰度 ...

  7. python Matplotlib.pyplot 如何绘制三维折线图, 散点图, 线框图, 表面图, 柱状图, 箭头图, 2D转3D图, 文本图, 3D拼图, 网状图, 直方图, 角面片图, 条状图?

    参考文章1: Matplotlib.pyplot 三维绘图 https://www.cnblogs.com/wuwen19940508/p/8638266.html 参考文章2: [python图像处 ...

  8. 数字图像处理(15): 灰度直方图(matplotlib 和OpenCV 绘制直方图)

    目录 1 灰度直方图简介 1.1 灰度直方图概念 1.2 灰度直方图作用 1.3 绘制的直方图 1.4 归一化直方图 2 matplotlib库 绘制直方图-hist() 3 OpenCV库 绘制直方 ...

  9. Matplotlib.pyplot参数(条形图,直方图,饼图,散点图)

    1. 条形图 bar() 官方文档网址:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.bar.html#matplotlib.scatter ...

  10. matplotlib.pyplot.scatter( )绘制散点图与双月形图

    matplotlib.pyplot里的函数scatter( )用于绘制散点图.学习Matplotlib绘图其实就是学习绘图函数中的参数,不同的参数搭配会产生不同的化学效应! scatter( )函数包 ...

最新文章

  1. 学习笔记:腾讯云--域名解析
  2. html函数中怎么写超链接,如何调用html超链接中的函数
  3. html5 文件转byte[],JS 文件base64、File、Blob、ArrayBuffer互转
  4. hdu4096(模拟)
  5. Python3的方法解析顺序(MRO)
  6. MVC PartialView
  7. 处理器映射器(HandlerMapping)及处理器适配器(HandlerAdapter)详解(一)
  8. 647. 回文子串(JavaScript)
  9. 51单片机两只老虎c语言程序,基于51单片机蜂鸣器的两只老虎音乐代码
  10. 五笔字根表识别码图_识别码五笔字根表打印
  11. html5字体代码列表,html5——web字体(示例代码)
  12. 【MyEcplise】build workspace卡死
  13. C#:实现一个将字符串转换为整数的方法
  14. Java 标准输入输出流(System.in,System.out)使用
  15. ssm 微信扫码支付
  16. 要么忍,要么狠,要么滚
  17. mysql按笔划排序_mysql中怎么按姓氏笔画排序
  18. 查看自己电脑的开关机记录
  19. app.json: [“subpackages“][0][“root“] 字段需为 目录
  20. Android编程权威指南笔记3:Android Fragment讲解与Android Studio中的依赖关系,如何添加依赖关系

热门文章

  1. 产品读书《魔鬼经济学3:用反常思维解决问题》
  2. 宏观经济政策的六个争论问题 - 异想天开
  3. 测试串口和串口线是否正常, 能否正常收发数据 !
  4. TalkingData
  5. Web大学生网页成品——英雄联盟LOL游戏网站制作与实现(HTML+CSS+JS)
  6. QT如何给exe添加图标
  7. python 一键登录126邮箱
  8. linux cups打印中文,Linux使用cups进行打印
  9. 服务器启动首选项不是虚拟盘,没法开启CPU虚拟化,BIOS没有开启的选项
  10. 直播视频卡顿延迟时如何优化