• 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( ) 方法常用参数详解

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

    在这里插入图片描述

  • 相关阅读:
    Spring Security使用总结四,此篇没有任何营养,就是将注册服务补全
    黑客(网络安全)技术自学30天
    Flutter 游戏教程之使用 Flutter 和 Flame 重现著名的 T-Rex 游戏
    【Leetcode】70. 爬楼梯
    C Primer Plus(6) 中文版 第1章 初识C语言 1.8 编程机制 1.11 本章小结
    Linux | 进程地址空间
    PAM从入门到精通(十五)
    22-06-28 西安 redis(02) 持久化机制、入门使用、事务控制、主从复制机制
    k8s主节点与子节点的错误解决
    ATFX汇市:英国通胀率大降两个百分点,GBPUSD止步近两月高点
  • 原文地址:https://blog.csdn.net/qq_42571592/article/details/125549235