在数据分析和可视化中最有用的 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("