演示: 在这里插入图片描述

1、numpy的直方图hist函数

直方图:
●由一系列高度不等的纵向条形组成,表示数据分布的情况。
●例如某年级同学的身高分布情况
●注意和条形图的区别

matplotlib.pyplot.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)

参数:(其他用到再百度吧)

x:输入值,它可以是单个数组或不需要相同长度的数组序列
bins:int或序列或STR,默认值:(默认值:)rcParams[“hist.bins”]10。

  • 如果bin是一个整数,则它定义范围内等宽宽度的bin数
  • 如果bin是序列。包括第一个bin的左边缘和最后一个bin的右边缘;在这种情况下,bins的间距可能不相等。除了最后一个(最右边)的bins外。如[1, 2, 3, 4],则bins为:[1, 2)[2, 3)[3, 4]
    color:颜色。
    normed:是否标准化,是:标准化,否:非标准化

2、示例

1)标准化输出直方图

import numpy as np #导入 numpyas
import matplotlib.pyplot as plt #导入 matplotlib.pyplot
mu =100 #均值
sigma=20 #标准差
x=mu+sigma*np.random.randn(2000)
plt.hist(x,bins=10,color='red',normed=True)

out:

(array([0.00073148, 0.00300291, 0.00920123, 0.01663151, 0.01847946,
        0.01566904, 0.00846975, 0.00377289, 0.00076998, 0.00026949]),
 array([ 41.60543497,  54.59282934,  67.5802237 ,  80.56761807,
         93.55501244, 106.54240681, 119.52980118, 132.51719554,
        145.50458991, 158.49198428, 171.47937865]),
 <a list of 10 Patch objects>)

在这里插入图片描述

2)非标准化输出直方图

in:

plt.hist(x,bins=50,color='b',normed=False)

out:

(array([  1.,   0.,   0.,   0.,   0.,   0.,   0.,   2.,   1.,   2.,   9.,
         10.,   8.,  11.,   6.,  28.,  27.,  30.,  38.,  52.,  53.,  57.,
         85.,  91., 118., 112., 101., 117., 115., 119., 143., 112.,  96.,
         82.,  71.,  54.,  58.,  35.,  24.,  45.,  26.,  19.,  14.,   8.,
          9.,   5.,   2.,   3.,   0.,   1.]),
 array([ 18.07432506,  20.97389896,  23.87347287,  26.77304677,
         29.67262067,  32.57219458,  35.47176848,  38.37134238,
         41.27091629,  44.17049019,  47.07006409,  49.969638  ,
         52.8692119 ,  55.7687858 ,  58.66835971,  61.56793361,
         64.46750751,  67.36708142,  70.26665532,  73.16622922,
         76.06580313,  78.96537703,  81.86495093,  84.76452484,
         87.66409874,  90.56367264,  93.46324655,  96.36282045,
         99.26239435, 102.16196826, 105.06154216, 107.96111606,
        110.86068997, 113.76026387, 116.65983778, 119.55941168,
        122.45898558, 125.35855949, 128.25813339, 131.15770729,
        134.0572812 , 136.9568551 , 139.856429  , 142.75600291,
        145.65557681, 148.55515071, 151.45472462, 154.35429852,
        157.25387242, 160.15344633, 163.05302023]),
 <a list of 50 Patch objects>)

在这里插入图片描述

3)双变量直方分布

matplotlib.pyplot.hist2d(x, y, bins=10, range=None, 
density=False, weights=None, cmin=None,
cmax=None, *, data=None, **kwargs)

按颜色深浅表示出现的频率高低
in:

x=np.random.randn(100)+2
y=np.random.randn(100)+3
plt.hist2d(x,y,bins=40)

out:

(array([[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        ...,
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]]),
 array([-0.0328012 ,  0.0927626 ,  0.2183264 ,  0.3438902 ,  0.46945399,
         0.59501779,  0.72058159,  0.84614539,  0.97170919,  1.09727299,
         1.22283679,  1.34840059,  1.47396439,  1.59952819,  1.72509199,
         1.85065579,  1.97621959,  2.10178339,  2.22734719,  2.35291099,
         2.47847479,  2.60403858,  2.72960238,  2.85516618,  2.98072998,
         3.10629378,  3.23185758,  3.35742138,  3.48298518,  3.60854898,
         3.73411278,  3.85967658,  3.98524038,  4.11080418,  4.23636798,
         4.36193178,  4.48749558,  4.61305937,  4.73862317,  4.86418697,
         4.98975077]),
 array([0.56345975, 0.68498327, 0.8065068 , 0.92803032, 1.04955384,
        1.17107737, 1.29260089, 1.41412442, 1.53564794, 1.65717147,
        1.77869499, 1.90021851, 2.02174204, 2.14326556, 2.26478909,
        2.38631261, 2.50783613, 2.62935966, 2.75088318, 2.87240671,
        2.99393023, 3.11545376, 3.23697728, 3.3585008 , 3.48002433,
        3.60154785, 3.72307138, 3.8445949 , 3.96611842, 4.08764195,
        4.20916547, 4.330689  , 4.45221252, 4.57373605, 4.69525957,
        4.81678309, 4.93830662, 5.05983014, 5.18135367, 5.30287719,
        5.42440071]),
 <matplotlib.collections.QuadMesh at 0x1a254799550>)

在这里插入图片描述

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐