1.数据分析中的常用图
1.1 折线图
折线图用于显示数据在一个连续的时间间隔或者时间跨度上的变化,它的特点是反映事物随时间或有序类别而变化的趋势。示例图如下:
折线图应用场景:
- 折线图适合
X
轴是一个连续递增或递减的,对于没有规律的,则不适合使用折线图,建议使用柱状图。 - 如果折线图条数过多,则不应该都绘制在一个图上。
1.2 柱状图
典型的柱状图(又名条形图),使用垂直或水平的柱子显示类别之间的数值比较。其中一个轴表示需要对比的分类,另一个轴代表相应的数值。
柱状图有别于直方图,柱状图无法显示数据在一个区间内的连续变化趋势。柱状图描述的是分类数据,回答的是每一个分类中“有多少?”这个问题。 示例图如下:
柱状图应用场景:
- 适用于分类数据对比。
- 垂直条形图最多不超过12个分类(也就是12个柱形),横向条形图最多不超过30个分类。如果垂直条形图的分类名太长,那么建议换成横向条形图。
3.柱状图不适合表示趋势,如果想要表示趋势,应该使用折线图。
1.3 直方图
直方图(Histogram),又称质量分布图,是一种统计报告图,由一系列高度不等的条纹表示数据分布的情况。一般用横轴表示数据类型,纵轴表示分布情况。 直方图是数值数据分布的精确图形表示。为了构建直方图,第一步是将值的范围分段,即将整个值的范围分成一系列间隔,然后计算每个间隔中有多少值。这些值通常被指定为连续的,不重叠的变量间隔。间隔必须相邻,并且通常是(但不是必须的)相等的大小。
直方图的应用场景:
- 显示各组数据数量分布的情况。
- 用于观察异常或孤立数据。
- 抽取的样本数量过小,将会产生较大误差,可信度低,也就失去了统计的意义。因此,样本数不应少于50个。
1.4 散点图
散点图也叫 X-Y 图,它将所有的数据以点的形式展现在直角坐标系上,以显示变量之间的相互影响程度,点的位置由变量的数值决定。
通过观察散点图上数据点的分布情况,我们可以推断出变量间的相关性。如果变量之间不存在相互关系,那么在散点图上就会表现为随机分布的离散的点,如果存在某种相关性,那么大部分的数据点就会相对密集并以某种趋势呈现。数据的相关关系主要分为:正相关(两个变量值同时增长)、负相关(一个变量值增加另一个变量值下降)、不相关、线性相关、指数相关等,表现在散点图上的大致分布如下图所示。那些离点集群较远的点我们称为离群点或者异常点。
示例图如下:
散点图的应用场景:
- 观察数据集的分布情况。
- 通过分析规律,根据样本数据特征计算出回归方程。
1.5 饼状图
饼状图通常用来描述量、频率和百分比之间的关系。在饼图中,每个扇区的弧长大小为其所表示的数量的比例。
饼状图的应用场景:
- 展示多个分类的占比情况,分类数量建议不超过9个。
- 对于一些占比值非常接近的,不建议使用饼状图,可以使用柱状图。
1.6 箱线图
箱线图(Box-plot)又称为盒须图、盒式图或箱型图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。箱线图的绘制方法是:先找出一组数据的上限值、下限值、中位数(Q2)和下四分位数(Q1)以及上四分位数(Q3);然后,连接两个四分位数画出箱子;再将最大值和最小值与箱子相连接,中位数在箱子中间。
2. matplotlib库
Matplotlib
是一个Python
的2D
绘图库,通过Matplotlib
,开发者可以仅需要几行代码,便可以生成折线图,直方图,条形图,饼状图,散点图等。
2.1 安装
pip install matplotlib
2.2 基本使用
import matplotlib.pyplot as plt
import numpy as np
plt.plot(range(10),[np.random.randint(0,10) for x in range(10)])
plt.show()
显示结果如下
默认的绘制样式是b-
,也就是蓝色实体线条。比如我想将原来的图的线条改成点状,那么可以通过以下代码实现:
import matplotlib.pyplot as plt
plt.plot(range(10),[np.random.randint(0,10) for x in range(10)],":")
除了设置线条的形状外,我们还可以设置点的颜色。示例代码如下:
plt.plot([1,2,3,4,5],[1,2,3,4,5],'r') #将颜色线条设置成红色
plt.plot([1,2,3,4,5],[1,2,3,4,5],color='red') #将颜色设置成红色
plt.plot([1,2,3,4,5],[1,2,3,4,5],color='#000000') #将颜色设置成纯黑色
表示颜色的缩写字符如下所示:
设置图的信息:
现在我们添加图后,没有指定x轴代表什么,y轴代表什么,以及这个图的标题是什么。因此以下我们通过一些属性来设置一下。
设置线条样式:
-
使用plot方法:plot方法就是用来绘制线条的,因此可以在绘制的时候就把线条相关的样式通过参数传进去。示例代码如下:
plt.plot(x,y,linewidth=2)