一、主要目的:
数据可视化是关于图形或表格的数据展示,旨在借助图形化手段,清晰有效的传达与沟通信息。通过直观地传达关键内容与特征,从而实现对相当稀疏而又复杂的数据集的深入洞察。熟悉在Python开发环境中支持数据可视化环节的可用模块以及其中的方法,通过查阅相关说明文档掌握Python中相应模块中的方法进行可视化展示的步骤。基于一定的样例数据,编写可视化的示例代码。
二、主要内容:
1.Matplotlib绘图示例
(1)点图和线图
点图和线图可以用来表示二维数据之间的关系,是查看两个变量之间关系的最直观方法,可以通过plot()来得到。
使用subplot()函数能够绘制多个字图像,并且可以添加X,Y坐标轴的名称。
(2)直方图
在统计学中,直方图(Histgram)是一种对数据分布情况的图形表示,是一种二维统计表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。
使用hist()函数来绘制向量的直方图,计算出直方图的概率密度,并且绘制出概率密度曲线,在标注中使用数学表达式。
(3)等值线图
等值线图又称为等量线图,是以相等数值点的连线表示连续分布且逐渐变化的数量特征的一种图形,是用数值相等各点连成的曲线(即等值线)在平面上的投影来表示被摄物体的外形和大小的图。
使用contour()函数将三维图像在二维空间上表示,并且使用clabel()在每条线上显示数据值的大小。
(4)三维曲面图
三维曲面图通常用来描绘三维空间的数值分布和形状。可以通过plot_surface()函数来得到想要的图像。
(5)条形图
Bar Chart)亦称条图、条状图、棒形图、柱状图,是一种以长方形的长度为变量的统计图表。长条图用来比较两个或两个以上的数值(不同时间或者不同条件),只有一个变量,通常利用较小的数据集分析。长条图亦可横向排列,或用多维方式表达。
(6)饼图
饼图,或称饼状图,是一个划分为几个扇形的圆形统计图表,用于描述量、频率或百分比之间的相对关系。
(7)气泡图(散点图)
气泡图是散点图的一种变体,通过每个点的面积大小,反映第三维数据。气泡图可以表示多维数据,并且可以通过对颜色和大小的编码表示不同的维度数据。如果使用颜色对数据分组,使用大小来映射相应值的大小。可以通过scatter()函数得到散点图。
2.Seabon中的图例
Seabon是专门的统计数据可视化包。可以使用Iris数据做样例。
(1)数据分布可视化
① 直方图和密度图
② 散点图和直方图
③ 分组散点图
④ 六边形图
⑤ 二维核密度估计图
核密度估计(Kernel Density Estimation , KDE)是在概率论中用来估计未知的密度函数,属于非参数检验方法之一。
⑥ 矩阵散点图
当同时考察多个变量间的相关关系时,若一一绘制它们之间的简单散点图,比较麻烦。利用矩阵散点图来同时绘制各自变量间的散点图,这样可以快速发现多个变量间的主要相关性,这一点在进行多元回归时显得尤为重要。
利用PairGrid()和pairplot()函数来绘制成对的关系图。
参阅:Seaborrn(sns)官方文档学习笔记 Seaborn(sns)官方文档学习笔记(第一章 艺术化的图表控制) - 知乎
(2)线性相关图
(3)分类数据可视化
① 小提琴图(盒形图的变形)
小提琴图是“箱线图”与“核密度图”的结合,箱线图展示了分位数的位置,小提琴图则展示了任意位置的密度,通过小提琴图可以知道哪些位置的密度较高。
Seaborn中的boxplot可以画箱线图,可以看出不同种类的分布情况。
②热力图
热力图是在不同的地方按照不同的颜色(亮度)来表达该区域数据大小等的图形,应用在很多地方,其中最常见的有热力地图、相关系数矩阵的展示等。使用Seaborn中的heatmap()函数来表示相关系数矩阵。
3.Pandas的一些可视化功能
(1)绘制箱线图
(2)时间序列图
时间序列图也叫折线图,是以时间为横轴,变量为纵轴的一种图。
(3)安德鲁曲线和平行坐标图
在数据可视化中,安德鲁曲线是一种可视化高维数据结构的方法,可以看作平滑版本的平行坐标图。
平行坐标图是一种常用的可视化方法,一般用于高维几何和多元数据的可视化。
(4)基于弹簧张力高维数据可视化
弹簧张力高维数据图是基于一个简单的弹簧张力最小化算法。代码如下:
from pandas.tools.plotting import radviz
4.PIL图库
PIL库在Python3中可以使用pillow库来替代,即安装pillow,就可以使用PIL。
(1)读取图片
读取图片并将其转化为灰度图
(2)创建缩略图
thumbnail()方法可以接收一个元组参数(该参数指定生成缩略图的大小),然后将图像转换成符合元组参数指定大小的图像。
(3)复制和粘贴图像区域
使用copy()方法可以从一幅图像中裁剪指定的区域
(4)调整尺寸和旋转
要调整一幅图像的大小,可以调用resize()方法,该方法的参数为一个元组,用来指定新图像的大小。使用rotate()方法旋转图像,该方法的数值参数表示逆时针旋转的角度。
(5)图像轮廓和直方图
显示图像轮廓和直方图
三、心得
通过这次的学习,我对Python中各种数据可视化的方法有了更深入的理解和掌握。我了解到,Python提供了多种强大的可视化工具,如Matplotlib,Seaborn,Pandas的可视化功能和PIL图库,可以帮助我们更直观地理解数据和进行数据分析。
在Matplotlib中,我学习了如何创建点图和线图,直方图,等值线图,三维曲面图,条形图,饼图和气泡图(散点图)。在Seaborn中,我了解了如何进行数据分布可视化,如直方图和密度图,散点图和直方图,分组散点图,六边形图,二维核密度估计图,矩阵散点图等,以及如何创建线性相关图,分类数据可视化图等。
在Pandas的可视化功能中,我学习了如何绘制箱线图,时间序列图,安德鲁曲线和平行坐标图,以及如何进行基于弹簧张力的高维数据可视化。在PIL图库中,我了解了如何读取图片,创建缩略图,复制和粘贴图像区域,调整尺寸和旋转,以及如何显示图像轮廓和直方图。
总的来说,这次的学习让我对Python的数据可视化有了更全面的了解,也增强了我在数据分析方面的技能。