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

二、绘制直方图

①绘制简单直方图

import matplotlib.pyplot as plt
import numpy as np
 
data=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 np
 
data=np.random.randint(140,180,200)
 
plt.hist(data,bins=10)
 
plt.show()

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

import matplotlib.pyplot as plt
import numpy as np
 
data=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 np
 
data=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 np
 
data=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 np
 
data=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 np
 
data=np.random.randint(140,180,200)
 
plt.hist(data,bins=10)
 
plt.show()

 

horizontal水平方向:

import matplotlib.pyplot as plt
import numpy as np
 
data=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 np
 
data=np.random.randint(140,180,200)
 
plt.hist(data,bins=10,density=True)
 
plt.show()

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

import matplotlib.pyplot as plt
import numpy as np
 
data=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 np
 
data=np.random.randint(140,180,200)
 
plt.hist(data,bins=10,weights=data)
 
plt.show()

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

import matplotlib.pyplot as plt
import numpy as np
 
data=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 np
 
data=np.random.randint(140,180,200)
 
plt.hist(data,bins=10,cumulative=True)
 
plt.show()

直方图为水平方向时: 

import matplotlib.pyplot as plt
import numpy as np
 
data=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 np
 
data=np.random.randint(140,180,200)
 
plt.hist(data,bins=10,bottom=170)
 
plt.show()

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

import matplotlib.pyplot as plt
import numpy as np
 
data=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 np
 
data=np.random.randint(140,180,200)
 
plt.hist(data,bins=10)
 
plt.show()

 left:

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

 right:

import matplotlib.pyplot as plt
import numpy as np
 
data=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 np
 
data=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 np
 
data=np.random.randint(140,180,200)
 
plt.hist(data,bins=10,log=True)
 
plt.show()

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

import matplotlib.pyplot as plt
import numpy as np
 
data=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 np
 
x=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 np
 
x=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 np
 
plt.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 np
 
x=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()

总结

到此这篇关于Python matplotlib.pyplot.hist()绘制直方图的文章就介绍到这了,更多相关matplotlib.pyplot.hist()绘制直方图内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

Python matplotlib.pyplot.hist()绘制直方图的方法实例的更多相关文章

  1. Python可视化神器pyecharts之绘制地理图表练习

    这篇文章主要介绍了Python可视化神器pyecharts之绘制地理图表,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

  2. 绘制flowable 流程图的Vue 库使用详解

    这篇文章主要为大家介绍了绘制flowable 流程图的Vue 库使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  3. Python数据分析之 Matplotlib 折线图绘制

    这篇文章主要介绍了Python数据分析之 Matplotlib 折线图绘制,在数据分析中,数据可视化也非常重要,下文通过数据分析展开对折线图的绘制,需要的小伙伴可以参考一下

  4. Python绘制折线图可视化神器pyecharts案例

    这篇文章主要介绍了Python绘制折线图可视化神器pyecharts,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

  5. python绘制云雨图raincloud plot

    这篇文章主要介绍了python绘制云雨图raincloud plot,Raincloud的Python实现是一个名为PtitPrince的包,它写在seaborn之上,这是一个Python绘图库,用于从pandas数据帧中获取漂亮的绘图

  6. jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)

    ImageDrawer.js是一款可以实现动态绘制图片动画的jQuery插件,接下来通过本文给大家介绍jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载),需要的朋友参考下

  7. Python利用matplotlib画出漂亮的分析图表

    这篇文章主要介绍了Python利用matplotlib画出漂亮的分析图表,文章首先引入数据集展开详情,需要的朋友可以参考一下

  8. Android Canvas绘制文字横纵向对齐

    这篇文章主要介绍了Android Canvas绘制文字横纵向对齐,Align属性决定了使用该画笔时,相较于绘制点的水平对称方式,分别是LEFT、CENTER、RIGHT,更多相关内容需要的小伙伴可以参考下面文章详细内容

  9. pyecharts绘制各种数据可视化图表案例附效果+代码

    这篇文章主要介绍了pyecharts绘制各种数据可视化图表案例并附效果和代码,文章围绕主题展开详细的内容介绍,感兴趣的小伙伴可以参考一下

  10. python绘制三维图的详细新手教程

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,下面这篇文章主要给大家介绍了关于python绘制三维图的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部