学习python库matplotlib之常见统计直方图(histogram)(5)

直方图:由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据范围,纵轴表示分布情况。

特点:绘制连续性的数据展示一组或者多组数据的分布状况(统计)

1 直方图基本知识

首先要对数据进行分组,然后统计每个分组内数据元的数量。 在坐标系中,横轴标出每个组的端点,纵轴表示频数,每个矩形的高代表对应的频数,称这样的统计图为频数分布直方图。

  • 组数:在统计数据时,我们把数据按照不同的范围分成几个组,分成的组的个数称为组数
  • 组距:每一组两个端点的差

2 与柱状图对比

  • 柱状图是以矩形的长度表示每一组的频数或数量,其宽度(表示类别)则是固定的,利于较小的数据集分析
  • 直方图是以矩形的长度表示每一组的频数或数量,宽度则表示各组的组距,因此其高度与宽度均有意义,利于展示大量数据集的统计结果
  • 由于分组数据具有连续性,直方图的各矩形通常是连续排列,而柱状图则是分开排列

3 直方图API - matplotlib.pyplot.hist()

matplotlib.pyplot.hist(x, bins=10, range=None,normed=False, weights=None, cumulative=False,bottom=None, histtype=‘bar’, align=‘mid’,orientation=u’vertical’, rwidth=None, log=False,color=None, label=None, stacked=False, hold=None,**kwargs)

  • x: 一个列表或者多个列表(表示不同数据集,长度可以不一致)
  • range: 元组
  • weights: x里每个元素对bin高度的贡献(默认为1)
  • bottom: 数字或者长度为bins的列表
  • histtype: [‘bar’ | ‘barstacked’ | ‘step’ | ‘stepfilled’]
  • align: [‘left’ | ‘mid’ | ‘right’]
  • orientation: [‘horizontal’ | ‘vertical’]
  • rwidth: bar相对bin的宽度
  • color: 一种颜色或者颜色列表(针对不同数据集)

4 绘制直方图

def MyHist():
    """
    绘制直方图
    :return:
    """
    import matplotlib.pyplot as plt
    import matplotlib as mpl
    import numpy as np
    # 设置在jupyter中matplotlib的显示情况
    # % matplotlib inline

    # 解决中文显示问题
    mpl.rcParams['font.sans-serif'] = ['SimHei']
    mpl.rcParams['axes.unicode_minus'] = False

    # 展现出10000个随机数满足 平均值是100 标准差是15 呈现的一个正态分布曲线
    mu, sigma = 100, 15
    x = mu + sigma * np.random.randn(10000)

    plt.hist(x, 100, normed=1, facecolor='g', alpha=0.75)

    plt.title('直方图')
    plt.text(60, 0.025, r'$\mu=100,\sigma=15$')  # 添加文本
    plt.axis([40, 160, 0, 0.03])
    plt.grid(True)
    plt.show()

MyHist()

学习python库matplotlib之常见统计直方图(histogram)(5)_第1张图片

5 直方图的应用场景

  • 用于表示分布情况
  • 通过直方图还可以观察和估计哪些数据比较集中,异常或者孤立的数据分布在何处

例如:用户年龄分布,商品价格分布

以上内容仅是代表个人总结 若有错误之处,还请批评指正,欢迎大家一起学习!

你可能感兴趣的:(python语言)