【数据分析】Matplotlib可视化最有价值的图表之——4、分布(Distribution)

在数据分析和可视化中最有用的 50 个 Matplotlib 图表。 这些图表列表允许使用 python 的 matplotlib 和 seaborn
库选择要显示的可视化对象。

这里开始第四部分内容:分布(Distribution)

准备工作

在代码运行前先引入下面的设置内容。 当然,单独的图表,可以重新设置显示要素。

    # !pip install brewer2mpl
    import numpy as np
    import pandas as pd
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    import seaborn as sns
    import warnings; warnings.filterwarnings(action='once')
    
    large = 22; med = 16; small = 12
    params = {'axes.titlesize': large,
              'legend.fontsize': med,
              'figure.figsize': (16, 10),
              'axes.labelsize': med,
              'axes.titlesize': med,
              'xtick.labelsize': med,
              'ytick.labelsize': med,
              'figure.titlesize': large}
    plt.rcParams.update(params)
    plt.style.use('seaborn-whitegrid')
    sns.set_style("white")
    # %matplotlib inline
    
    # Version
    print(mpl.__version__)  # >> 3.0.2
    print(sns.__version__)  # >> 0.9.0

本节内容

分布(Distribution)

统计分布 (frequency distribution)
亦称“次数(频数)分布(分配)”。在统计分组的基础上,将总体中的所有单位按组归类整理,形成总体单位在各组间的分布。分布在各组中的单位数叫做次数或频数。各组次数与总次数(全部总体单位数)之比,称为比率或频率。将各组别与次数依次编排而成的数列就叫做统计分布数列,简称分布数列或分配数列。它可以反映总体中所有单位在各组间的分布状态和分布特征,研究这种分布特征是统计分析的一项重要内容。统计分布及其分布数列,可以用表格或图形来表示
[1]

  • 20 连续变量的直方图 (Histogram for Continuous Variable)
  • 21 类型变量的直方图 (Histogram for Categorical Variable)
  • 22 密度图 (Density Plot)
  • 23 直方密度线图 (Density Curves with Histogram)
  • 24 分组密度曲线图(Joy Plot)
  • 25 分布式包点图 (Distributed Dot Plot)
  • 26 箱形图 (Box Plot)
  • 27 包点+箱形图 (Dot + Box Plot)
  • 28 小提琴图 (Violin Plot)
  • 29 人口金字塔 (Population Pyramid)
  • 30 分类图 (Categorical Plots)

20 连续变量的直方图 (Histogram for Continuous Variable)

直方图显示给定变量的频率分布。 下面的图表示基于类型变量对频率条进行分组,从而更好地了解连续变量和类型变量。

    # Import Data
    df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")
    
    # Prepare data
    x_var = 'displ'
    groupby_var = 'class'
    df_agg = df.loc[:, [x_var, groupby_var]].groupby(groupby_var)
    vals = [df[x_var].values.tolist() for i, df in df_agg]
    
    # Draw
    plt.figure(figsize=(16,9), dpi= 80)
    colors = [plt.cm.Spectral(i/float(len(vals)-1)) for i in range(len(vals))]
    n, bins, patches = plt.hist(vals, 30, stacked=True, density=False, color=colors[:len(vals)])
    
    # Decoration
    plt.legend({group:col for group, col in zip(np.unique(df[groupby_var]).tolist(), colors[:len(vals)])})
    plt.title(f"Stacked Histogram of ${x_var}$ colored by ${groupby_var}$", fontsize=22)
    plt.xlabel(x_var)
    plt.ylabel("Frequency")
    plt.ylim(0, 25)
    plt.xticks(ticks=bins[::3], labels=[round(b,1) for b in bins[::3]])
    plt.show()

![在这里插入图片描述](https://img-blog.csdnimg.cn/20191012154208602.png?x-oss-
process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1l1eWgxMzE=,size_16,color_FFFFFF,t_70)

21 类型变量的直方图 (Histogram for Categorical Variable)

类型变量的直方图显示该变量的频率分布。 通过对条形图进行着色,可以将分布与表示颜色的另一个类型变量相关联。

    # Import Data
    df = pd.read_csv("
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值