统计图表

您所在的位置:网站首页 条形统计图与直方图 统计图表

统计图表

2023-06-19 14:33| 来源: 网络整理| 查看: 265

条形图与直方图 1. 条形图1.1 常用参数1.2水平显示条形图1.3 对比条形图1.4 堆积条形图 2. 直方图2.1 常用参数2.2 seaborn中的直方图2.2.1 常用参数

1. 条形图

  条形图一般用于分类型变量的展示或探索性分析,特点是横轴代表类别,纵轴(条形图的长度)代表频数或者频率,因此条形图的宽度是没有意义的。

import numpy as np import matplotlib.pyplot as plt # 使用jupyter notebook要加上下面的代码以正确显示图片, %matplotlib inline N = 5 y = [20, 10, 30, 15, 25] x = np.arange(N) plt.bar(x, y) plt.show()

在这里插入图片描述   通过上面简短的代码就能得到一个简单的条形图,为了让画出的条形图更美观一点,我们可以使用以下参数来对条形图进行调整:

1.1 常用参数 color:颜色width:条形宽度orientation:控制条形图的方向 plt.bar(x, y, color='g', width=0.4)

在这里插入图片描述

1.2水平显示条形图

  将条形图设置为水平显示有两种方法,一种是将参数orientation设置为’horizontal’;另一种是直接使用plt.barh()函数:

plt.bar(x=0,bottom=x, width=y,height=0.5, color='g', orientation='horizontal')

在这里插入图片描述   使用plt.barh()函数比直接使用plt.bar()函数要简单一些:

# 水平条线图的另一种实现 plt.barh(x, y, color='g', height=0.5)

在这里插入图片描述

1.3 对比条形图

  对比条形图常用于多总体的分类型数据比较,主要通过使用给类别加上条形图的宽度作为偏移量来实现的:

D1 = [20, 30 , 15, 18] D2 = [15, 20 , 30, 25] index = np.arange(4) bar_width = 0.3 plt.bar(index, D1, width=bar_width, color='r') plt.bar(index+bar_width, D2, width=bar_width, color='g')

在这里插入图片描述   利用1.2中的方法,使用plt.barh()就能画出水平的对比条形图:

plt.barh(index, D1, height=bar_width, color='r') plt.barh(index+bar_width, D2, height=bar_width, color='g')

在这里插入图片描述

1.4 堆积条形图

  在画对比条形图时,我们再类别加上了条形的宽度来对达到并排显示条形的目的;类似地,给一个分类变量的值加上另一个分类变量对应的取值,就是实现堆积的效果:

plt.bar(index, D1, width=bar_width, color='r') plt.bar(index, D2, width=bar_width, bottom=D1,color='g')

在这里插入图片描述

2. 直方图

  直方图主要是用来观察连续型变量的分布,可以将直方图看作变量分布的一个估计。   在matplotlib中使用hist函数可以直接画出对应数据的直方图

import numpy as np import matplotlib.pyplot as plt %matplotlib inline # 生成随机样本 mu = 20 sigma = 5 x = mu + sigma * np.random.randn(2000) plt.hist(x)

在这里插入图片描述

2.1 常用参数 color:颜色bins:分组数量density:将y轴转化为频率(频率和为1)   除了color这个matplotlib的基本方法外,hist函数中还能使用bins’来控制直方图的分组数量: plt.hist(x, bins=20, color='g', density=True)

在这里插入图片描述  从上图可以看出图片的组数增加了,同时y轴的取值由频数转化为了频率。

2.2 seaborn中的直方图

   seaborn基于 matplot, 导入 seaborn 会修改默认的 matplotlib 配色方案和绘图样式,这会提高图表的可读性和美观性:    seaborn中通过distplot来画出变量的直方图:

import seaborn as sns from scipy.stats import norm x = np.random.gamma(20, size=2000) plt.figure() sns.distplot(x)

在这里插入图片描述

2.2.1 常用参数 kde:是否显示密度估计曲线的参数,默认为 True。fit: 拟合目标分布   在seaborn中也可使用color、bins对直方图的颜色和分组数量进行控制。除此之外,还可使用kde参数控制密度函数估计是否显示,fit参数来拟合目标估计。下面我们生成服从 Γ ( 20 , 1 ) \Gamma(20, 1) Γ(20,1) 的随机样本并画出其直方图,密度函数估计图: import seaborn as sns from scipy.stats import norm # 生成伽马分布的随机样本 x = np.random.gamma(20, size=2000) plt.figure() sns.distplot(x, bins=40, kde=True, fit=norm, color='g')

在这里插入图片描述   上图的绿色曲线为样本的概率密度函数估计曲线,黑色曲线为拟合的正态分布的概率密度函数曲线。可见该伽马分布与正态分布十分接近,这符合伽马分布的形状参数越大,它就接近正态分布的性质。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3