数据可视化(附带操作实例)

一、主要目的:

数据可视化是关于图形或表格的数据展示,旨在借助图形化手段,清晰有效的传达与沟通信息。通过直观地传达关键内容与特征,从而实现对相当稀疏而又复杂的数据集的深入洞察。熟悉在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的数据可视化有了更全面的了解,也增强了我在数据分析方面的技能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/284976.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习 | SVM支持向量机

欲穷千里目,更上一层楼。 一个空间的混乱在更高维度的空间往往意味着秩序。 Machine-Learning: 《机器学习必修课:经典算法与Python实战》配套代码 - Gitee.com 1、核心思想及原理 针对线性模型中分类两类点的直线如何确定。这是一个ill-posed problem。…

百度 STI2 赛题二-基于向量交集的 TopK 搜索 优化学习笔记

百度 STI2 赛题二-基于向量交集的 TopK 搜索 优化学习笔记 注: 本文主要是对参赛冠军团队"晨曦"的 xiatwhu/baidu_topk 代码的学习整理, 下文中的"代码作者"即指的该仓库的作者. 赛题信息 给定850万条规模的数据文件,每条数据是最大128维度的…

Linux线程——基本知识

线程与进程的区别 典型的UNIX/Linux进程可以看成只有一个控制线程: 一个进程在同一时刻只做一件事情。有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程各自处理独立的任务。 进程有独立的地址空间,一个进…

如何让32位.Net 应用打开3G开关

昨天刚分享了《如何让.NET应用使用更大的内存》&#xff0c;结果就有同学说&#xff0c;<最好加一下32位如何开启大内存&#xff0c;因为很多传统项目32位&#xff0c;实在迁移不动了>&#xff0c;那么&#xff0c;我就验证了一些可行的方案&#xff0c;发现都挺简单的。…

IDEA运行JSP启动后页面中文乱码

源代码截图&#xff1a; 运行结果截图&#xff1a; 在<head>标签内加入代码 <% page contentType"text/html; charsetgb2312"%> 重启服务器&#xff0c;问题已改善 ————————————————— 该文仅供学习以及参考&#xff0c;可做笔记收藏…

不同版本QT使用qmake时创建QML项目的区别

不同版本QT使用qmake时创建QML项目的区别 文章目录 不同版本QT使用qmake时创建QML项目的区别一、QT5新建QML项目1.1 目录结构1.2 .pro 文件内容1.3 main.cpp1.4 main.qml 二、QT6新建QML项目2.1 目录结构2.2 .pro文件内容2.3 main.cpp2.4 main.qml 三、两个版本使用资源文件的区…

手机大厂的自由窗口freeform功能基于aosp14/安卓14适配完成-千里马android framework实战开发

背景 hi&#xff0c;粉丝朋友们&#xff1a; 今年2023年已经块过去了&#xff0c;各个手机厂商已经开始适配aosp14&#xff0c;甚至有的是已经适配完成&#xff0c;明年市场就大部分手机出厂就都是android 14了。 近期有个马哥学员刚好求助马哥一个关于以前马哥课程里面自由窗…

【为数据之道学习笔记】5-7五类数据主题联接的应用场景

在数字化转型的背景下&#xff0c;华为的数据消费已经不再局限于传统的报表分析&#xff0c;还要支持用户的自助分析、实时分析&#xff0c;通过数据的关联&#xff0c;支持业务的关联影响分析以及对目标对象做特征识别&#xff0c;进行特定业务范围圈定、差异化管理与决策等。…

安装android studio

记录一下安装android studio的过程&#xff1a; 1.首先安装android studio到某一文件夹后&#xff0c;在C盘用户目录下可以看到.android文件夹。C:\Users\22515\AppData\Local\Google目录下也会出现AndroidStudio2022.2文件夹。&#xff08;注意&#xff1a;用户名&#xff0c…

如何访问AWS私有网络中的RDS (Mysql)

文章目录 小结问题及解决连接问题如何使用本地的Mysql Workbench对RDS进行访问 参考 小结 在AWS私有网络中部署了RDS (Mysql), 尝试通过外网成功地进行了访问. 问题及解决 连接问题 在AWS私有网络中部署了RDS (Mysql), 进行外网进行访问碰到了各种问题. 以下连接超时&…

(七)STM32 NVIC 中断、优先级管理及 AFIO 时钟的开启

目录 1. 中断相关知识简介 1.1 什么是中断 1.2 什么是内中断、外中断 1.3 什么是可屏蔽中断、不可屏蔽中断 2. CM3 内核中断介绍 2.1 F103系统异常清单 2.2 F103 外部中断清单 3. NVIC 简介 3.1 NVIC 寄存器简介 3.2 NVIC 相关寄存器的介绍 4. 中断优先级 4.1 优先…

python实现AES加解密小工具

需求 测试过程中需要对加密流量包进行加解密&#xff0c;有时候js太大调试过程中浏览器器会卡死。需要手动编写一个加解密工具对加解密信息处理。 实现 小工具是使用python3编写的 使用 python3 aes_tool.py encrypt "Hello, World!" key.txt --mode cfb python…