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

一、主要目的:

数据可视化是关于图形或表格的数据展示,旨在借助图形化手段,清晰有效的传达与沟通信息。通过直观地传达关键内容与特征,从而实现对相当稀疏而又复杂的数据集的深入洞察。熟悉在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.mzph.cn/news/231475.shtml

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

相关文章

mybatis.interceptor.exception.SqLValidateException:Ilegal SQL::......

现象:⬇️ 描述:执行 SQL 没问题,应用代码报错 ⬇️ .mybatis.interceptor.exception.SqLValidateException:Ilegal SQL::SELECT voucherNo FROM voucher ORDER BY CAST(SUBSTRING(voucherNo FROM LOCATE(_, voucherNo) 1) AS U…

力扣刷题记录(15)LeetCode:509、70、746

目录 509.斐波那契数 70.爬楼梯 746.使用最小花费爬楼梯 总结 ​​​​​​ 用一个数组来存储前两个数的值&#xff0c;然后根据前两个数的值来确定当前的值。 class Solution { public:int fib(int n) {if(n<2) return n;vector<int> v;v.push_back(0);v.push…

ELK(九)—logstash

目录 简介安装部署测试 配置详解编写配置文件连接elasticsearch将数据推送到elasticsearch中。 简介 Logstash 是一个开源的服务器端数据处理管道&#xff0c;由 Elastic 公司维护和开发。它被设计用于从不同来源收集、处理和转发数据&#xff0c;以供 Elasticsearch 进行存储…

持续集成交付CICD:Jenkins使用GitLab共享库实现前端项目镜像构建

目录 一、实验 1. GitLab修改项目文件与Harbor环境确认 2.Jenkins使用GitLab共享库实现前端项目镜像构建 3.优化CI流水线封装Harbor账户密码 4.Jenkins再次使用GitLab共享库实现前端项目镜像构建 一、实验 1. GitLab修改项目文件与Harbor环境确认 &#xff08;1&#xf…

掌握 Babel:让你的 JavaScript 与时俱进(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

npm简介与使用指南

一、什么是npm? npm&#xff0c;全称为Node Package Manager&#xff0c;是Node.js的包管理器。它允许开发者分享和重用代码&#xff0c;提供了一个巨大的开源库供开发者选择和使用。通过npm&#xff0c;你可以轻松安装、更新和管理Node.js的库和工具。 二、npm的主要功能 …

Java对象结构

Java 对象(Object 实例)结构包括三部分:对象头、对象体、对齐字节。 Object的三个部分 对象头包括三个字段&#xff0c;第一个字段叫做 Mark Word(标记字)&#xff0c;用于存储自身运行时的数据 例如 GC 标志位、哈希码、锁状态等信息。 第二个字段叫做 Class Pointer(类对象…

2024免费mac苹果电脑系统电脑管家CleanMyMac X

macOS已经成为最受欢迎的桌面操作系统之一&#xff0c;它提供了直观、简洁的用户界面&#xff0c;使用户可以轻松使用和管理系统。macOS拥有丰富的应用程序生态系统&#xff1b;还可以与其他苹果产品和服务紧密协作&#xff0c;如iPhone、iPad&#xff0c;用户可以通过iCloud同…

2023_Spark_实验二十八:Flume部署及配置

实验目的&#xff1a;熟悉掌握Flume部署及配置 实验方法&#xff1a;通过在集群中部署Flume&#xff0c;掌握Flume配置 实验步骤&#xff1a; 一、Flume简介 Flume是一种分布式的、可靠的和可用的服务&#xff0c;用于有效地收集、聚合和移动大量日志数据。它有一个简单灵活…

缓存击穿的原因和解决方案

缓存击穿 原因&#xff1a;一个被高并发访问并且缓存重建业务较复杂的key突然失效了&#xff0c;无数的请求访问会在瞬间给数据库带来巨大的冲击 解决方案 1.互斥锁 优点 没有额外的内存消耗保证一致性实现简单 缺点 线程需要等待&#xff0c;性能受影响可能有死锁风险 …

vue 历程记

目录 前言一、源码优化1、vue3.x 采用 monorep 的理念来管理源码2、vue3.x 源码采用 TypeScript 开发 二、性能优化1、减少源码的体积2、数据劫持优化3、编译优化&#xff08;1&#xff09;、编译粒度的优化 三、语法 API 的优化1、优化了编码的逻辑组织2、优化了代码的逻辑复用…

webpack学习-6.缓存

webpack学习-6.缓存 1.前言2.输出文件的文件名3. 提取引导模板4.模块标识符5.总结 1.前言 webpack 会在打包后生成可部署的 /dist 目录&#xff0c;并将打包后的内容放在此目录。一旦 /dist 目录中的内容部署到服务器上&#xff0c;客户端&#xff08;通常是浏览器&#xff09…

Linux操作系统:自由、稳定、强大的开源之光

导言 Linux操作系统作为一个开源的、多用户、多任务、支持多线程和多CPU的UNIX类操作系统&#xff0c;不仅在服务器领域占有显著份额&#xff0c;也逐渐在桌面和嵌入式系统中崭露头角。Linux操作系统的多样性体现在各种不同的发行版上&#xff0c;而Ubuntu、CentOS和Red Hat可以…

C# WPF上位机开发(进度条操作)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 软件上面如果一个操作比较缓慢&#xff0c;或者说需要很长的时间&#xff0c;那么这个时候最好添加一个进度条&#xff0c;提示一下当前任务的进展…

SQL进阶理论篇(十一):什么是MVCC?

文章目录 简介什么是MVCC快照读与当前读悲观锁的问题示例参考文献 简介 在MySQL中&#xff0c;默认的隔离级别是可重复读&#xff0c;可以解决脏读和不可重复读的问题&#xff0c;但不能解决幻读问题。如果想要解决幻读问题&#xff0c;就需要采用串行化的方式&#xff0c;通过…

js中for-in和for-of的区别

文章目录 一、介绍1.1、for-in1.2、for-of 二、区别2.1、迭代对象的内容不同2.2、迭代对象的类型不同2.3、迭代对象的顺序不同2.4、迭代对象的原理不同 三、联系四、如何选择合适的循环方法五、总结六、最后 一、介绍 在JavaScript中&#xff0c;for-in 和 for-of 是两种不同的…

详细教程 - 从零开发 Vue 鸿蒙harmonyOS应用 第六节(js版) ——模块化设计实现复杂页面

随着HarmonyOS生态的日渐完善,越来越多的厂商加入鸿蒙系统应用开发的行列。然而从其他系统转到鸿蒙开发,很多开发者还是需要一个适应的过程,特别是面对比较复杂的页面,应该如何合理进行模块化拆分是一个难点。 本文将通过一个实例,来分析如果采用模块化的方式实现一个包含丰富内…

【个人版】SpringBoot下Spring-Security自定义落地篇【四】

SpringBoot Spring-Security 背景&#xff1a; 上篇文章在源码读取的基础上&#xff0c;根据自身代码习惯及需求&#xff0c;总结了一个自定义简单落地版本。后来在看到松哥写的博文&#xff08;不太爱看官网&#xff09;&#xff0c;发现还有新的变种模式&#xff0c;虽然整…

mysql使用全文索引+ngram全文解析器进行全文检索

表结构&#xff1a;表名 gamedb 主键 id 问题类型 type 问题 issue 答案 answer 需求 现在有个游戏资料库储存在mysql中&#xff0c;客户端进行搜索&#xff0c;需要对三个字段进行匹配&#xff0c;得到三个字段的相关性&#xff0c;选出三个字段中相关性最大的值进…

【MYSQL】-库的操作

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …