本文共 3321 字,大约阅读时间需要 11 分钟。
内容来自:极客时间专栏
如果你想要用Python进行数据分析,就需要在项目初期开始进行探索性的数据分析,这样方便你对数据有一定的了解。其中最直观的就是采用数据可视化技术,这样,数据不仅一目了然,而且更容易被解读。同样在数据分析得到结果之后,我们还需要用到可视化技术,把最终的结果呈现出来。
按照数据之间的关系,我们可以把可视化视图划分为4类,它们分别是比较、联系、构成和分布。我来简单介绍下这四种关系的特点:
同样,按照变量的个数,我们可以把可视化视图划分为单变量分析和多变量分析。
可视化的视图可以说是分门别类,多种多样,今天我主要介绍常用的10种视图,包括了散点图、折线图、直方图、条形图、箱线图、饼图、热力图、蜘蛛图、二元变量分布、成对关系。
散点图的英文叫做scatter plot,它将两个变量的值显示在二维坐标中,非常适合展示两个变量之间的关系。当然,除了二维的散点图,我们还有三维的散点图。
我在上一讲中给你简单介绍了下Matplotlib这个工具,在Matplotlib中,我们经常会用到pyplot这个工具包,它包括了很多绘图函数,类似Matlab的绘图框架。在使用前你需要进行引用:
下面三张图分别对应“x”“\u0026gt;”和“o”。
好了,让我们来模拟下,假设我们的数据是随机的1000个点。
Matplotlib绘制:
折线图可以用来表示数据随着时间变化的趋势。
在Matplotlib中,我们可以直接使用plt.plot()函数,当然需要提前把数据按照X轴的大小进行排序,要不画出来的折线图就无法按照X轴递增的顺序展示。
在Seaborn中,我们使用sns.lineplot (x, y, data=None)函数。其中x、y是data中的下标。data就是我们要传入的数据,一般是DataFrame类型。
这里我们设置了x、y的数组。x数组代表时间(年),y数组我们随便设置几个取值。下面是详细的代码。
直方图是比较常见的视图,它是把横坐标等分成了一定数量的小区间,这个小区间也叫作“箱子”,然后在每个“箱子”内用矩形条(bars)展示该箱子的箱子数(也就是y值),这样就完成了对数据集的直方图分布的可视化。
在Matplotlib中,我们使用plt.hist(x, bins=10)函数,其中参数x是一维数组,bins代表直方图中的箱子数量,默认是10。
在Seaborn中,我们使用sns.distplot(x, bins=10, kde=True)函数。其中参数x是一维数组,bins代表直方图中的箱子数量,kde代表显示核密度估计,默认是True,我们也可以把kde设置为False,不进行显示。核密度估计是通过核函数帮我们来估计概率密度的方法。
这是一段绘制直方图的代码。
热力图,英文叫heat map,是一种矩阵表示方法,其中矩阵中的元素值用颜色来代表,不同的颜色代表不同大小的值。通过颜色就能直观地知道某个位置上数值的大小。另外你也可以将这个位置上的颜色,与数据集中的其他位置颜色进行比较。
热力图是一种非常直观的多元变量分析方法。
我们一般使用Seaborn中的sns.heatmap(data)函数,其中data代表需要绘制的热力图数据。
这里我们使用Seaborn中自带的数据集flights,该数据集记录了1949年到1960年期间,每个月的航班乘客的数量。
如果想要探索数据集中的多个成对双变量的分布,可以直接采用sns.pairplot()函数。它会同时展示出DataFrame中每对变量的关系,另外在对角线上,你能看到每个变量自身作为单变量的分布情况。它可以说是探索性分析中的常用函数,可以很快帮我们理解变量对之间的关系。
pairplot函数的使用,就好像我们对DataFrame使用describe()函数一样方便,是数据探索中的常用函数。
这里我们使用Seaborn中自带的iris数据集,这个数据集也叫鸢尾花数据集。鸢尾花可以分成Setosa、Versicolour和Virginica三个品种,在这个数据集中,针对每一个品种,都有50个数据,每个数据中包括了4个属性,分别是花萼长度、花萼宽度、花瓣长度和花瓣宽度。通过这些数据,需要你来预测鸢尾花卉属于三个品种中的哪一种。
下面这张图相当于这4个变量两两之间的关系。比如矩阵中的第一张图代表的就是花萼长度自身的分布图,它右侧的这张图代表的是花萼长度与花萼宽度这两个变量之间的关系。
「另 5 种可视化技能」
你的数据分析能力:
三道数据分析测试题:基础+进阶+场景转载地址:http://tffal.baihongyu.com/