• matplotlib之pyplot模块之直方图(hist():基础参数,返回值)


    直方图

    概念: 直方图是用来衡量连续变量的概率分布的。

    参数详解

    使用matplotlib绘制直方图:

    直方图的参数只有一个x!!!不像条形图需要传入x,y

    plt.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,
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    hist()的参数

    • x: 输入数据
    • bins:可以是一个bins数量的整数值,也可以是表示bins的一个序列。默认值为10

    bins(把值分成多少等份),也就是说我们需要先把连续值划分成不同等份,然后计算每一份里面数据的数量。

    • range
      设置X轴刻度的起始刻度和结束刻度

    • density:如果值为True,直方图的值将进行归一化处理,形成概率密度,默认值为False

    • color:指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色

    • orientation:通过设置orientationhorizontal创建水平直方图。默认值为vertical

    • align:{'left', 'mid', 'right'}, default: 'mid'

      • left:条形图位于左侧边缘。
      • 'mid':条形图位于中心位置。
      • 'right':条形图位于右侧边缘。
    • label:添加图例

    • rwidth:条形图的相对宽度

    参数实例及讲解

    import numpy as np
    x = np.random.randint(1,10,size = 10)
    # 展示下 rwidth 的作用
    print(x)
    plt.hist(x, bins=5, rwidth=0.5, range = (0, 10), color = "red", label='数字统计')  # 将10个数字分成5份, 展示分布频率
    plt.legend()
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    label: 声明图例后,使用legend(),才能显示
    rwidth:设置图形所占x轴的比例
    range: 设置X轴刻度的区间

    代码运行结果
    在这里插入图片描述

    bins通过列表设为区间及返回值分析

    print(x)
    n, bins, patches = plt.hist(x, bins=[1,3,5,8,10], rwidth=0.5)
    plt.show()
    
    • 1
    • 2
    • 3
    • 我们指定的是间隔的边缘,每一个间隔为[1,3) [3,5) [5,8) [8,10],
    • rwidth:会按照间隔的0.5进行展示,比如x轴1到3的一半,5到8 的一半,
    • 除了最后一个间隔外,所有间隔均为左闭右开
    • 而且每一个间隔长度不用相等
    • 在我们指定间隔外的数据会被直接忽略

    注:如果bins为列表形式,则range对其无影响

    print('数字分布:', n)
    print('间隔划分:', bins)
    print(patches)
    
    • 1
    • 2
    • 3

    n:表示落入每个bins中的样本数
    bins: 表间隔的划分区间
    patchesPatch objects,暂不明白😰

    代码运行结果
    在这里插入图片描述

    density

    print(x)
    n, bins, patches = plt.hist(x, bins=[1,3,5,8,10], rwidth=0.5, density=True)
    plt.show()
    print('数字分布:', n)
    print('间隔划分:', bins)
    print(patches)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • density设置为True时,纵轴显示分布频率
    • n此时为分布频率的值
      在这里插入图片描述

    参考文章

    Matplotlib官方手册地址
    python绘制直方图matplotlib.pyplot.hist( ) 方法常用参数详解

    欢迎大家在评论区留言,知无不言,言无不尽。感觉不错的话,别忘了点赞收藏哦!

    在这里插入图片描述

  • 相关阅读:
    计算机体系结构
    JavaScript开发工具WebStorm入门教程:开始运行WebStorm(一)
    教你自己搭建一个IP池(绝对超好用!!!!)
    第19章 数据库备份与恢复【4.日志与备份篇】【MySQL高级】
    下一代 无线局域网--强健性
    【C++心愿便利店】No.6---C++之拷贝构造函数
    导航系统架构及业务模块组合策略
    技术分享 | 常见接口协议解析
    申请发明专利的流程及时间
    SpringSecurity - 启动流程分析(一)
  • 原文地址:https://blog.csdn.net/qq_42571592/article/details/125549235