数据可视化Python实现超详解【数据分析】
个人主页:在线OJ的阿川
大佬的支持和鼓励,将是我成长路上最大的动力
阿川水平有限,如有错误,欢迎大佬指正
Python 初阶
Python–语言基础与由来介绍
Python–注意事项
Python–语句与众所周知
数据清洗前 基本技能
数据分析—技术栈和开发环境搭建
数据分析—Numpy和Pandas库基本用法及实例
数据可视化前 必看
数据分析—三前奏:获取/ 读取/ 评估数据
数据分析—数据清洗操作及众所周知
数据分析—数据整理操作及众所周知
数据分析—统计学基础及Python具体实现
目录
- 可视化介绍
- 一维图表
- 补充的话
- 二维图表
- 补充的话
- 多维图表
- 补充的话
- 互相对比
可视化介绍
可视化是数据分析中 很重要 的一个环节
- 一图胜千言
- 发现隐藏的关系、趋势、影响
- 可视化本身也是一种探索数据,分析数据的方式
- 可视化中的图表可从维度主要分为一维图表和二维图表和多维图表及互相对比图表
- 主要用的库为:seaborn和matplotlib
- 在cmd中安装pip install seaborn和pip install matplotlib
阿里云的镜像源:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
- 在jupyter中导入
- import seaborn as sns
- import matplotlib.pyplot as plt
- 大部分我们使用的功能都在pyplot的子模板下
一维图表
一维图表
- 直方图 Histogram
- 表示数据分布
- 有助于展示数据频率分布
- 横轴:数据范围
- 纵轴:个数
- 即一个数值变量.
- 表示数据分布
- sns.histplot(变量名)
- 密度图 KernelDensity
- 表示数据分布
- 用平滑的曲线,更易看出分布形状
- 表示数据分布
- sns.kdeplot(变量名)
- 箱型图 BoxPlot
- 其中上界为最大值或者上界等于第三四分位数加上1.5×四分位距,跟上界进行比较,谁小取谁,作为上界
- 其中下界为最小值或者下界等于第一四分位数减去1.5×四分位距,跟下界进行比较,谁大取谁,作为下界
这样做的好处是可以帮助我们发现数据当中的异常值
- sns.boxplot(变量名)
- 小提琴图 ViolinPlot
- 结合了密度图、直方图、箱形图
- 横轴:数据分布
- 纵轴:概率密度
- sns.violinplot(变量名)
补充的话
上述这些一维图表中参数可以传入DataFrame
(DataFrame名,x=" “,y=” ")
若要更改一维图表中的标题标签
plt.title(" ")
更改 x轴标签
plt.xlabel(" ")
更改 y轴标签
plt.ylabel(" ")
因为matplotlib库中默认的字体,它不支持中文,所以要自己手动更换支持中文的字体
查看支持中文的字体,如下:
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib.font_manager import FontManagerfont_manager = FontManager()
print(set(f.name for f in font_manager.ttflist))
更换字体,如下:
matplotlib.rc("font",family='Heiti TC')
二维图表
- 折线图 LinePlot
- 用于展示连续间隔或时间跨度上数值的变化,从而看出趋势变化
- 两个 数值变量
- 加一个颜色,即可多表示一个分类变量
- sns.lineplot(data=DataFrame名,x=" “,y=” ")
- 饼图 PiePlot
- 展示各个分类对应数值之间的比例
- 一个分类变量,一个数值变量
- plt.pie(DataFrame名[“数值变量列]”,labels=DataFrame名[“分类变量列”])
- autopct="%.1f%%" 该参数可以显示百分比,%可以告诉系统,这是用来展示格式字符串,%%告诉系统,这是百分比结尾
- 散点图 ScatterPlot
- 展示两个数值变量关系
- 可以看出两个变量之间的相关性
- x轴:一个变量的值
- y轴:一个变量的值
- 展示两个数值变量关系
- sns.scatterplot(DataFrame名,x=" “,y=” ")
- 或者 sns.scatterplot(x=DataFrame[" “],y=DataFrame[” "])
- 条形图 BarPlot
- 横轴:分类类别
- 纵轴:数值
- 一个分类变量加一个数值变量
- sns.barplot(data=DataFrame名,x=" “,y=” ")
- estimator 该参数可以指定纵轴的高度对应所属分类下的所有值的样式,不写该参数,则默认纵轴高度对应所属分类下的所有值的平均值
但在条形图基础上,若纵轴想记录个数,则用
- 计数图 countplot
- sns.countplot(data=DataFrame名, x=" ") Y轴自动聚合成x里面的个数
补充的话
上述图表的颜色有点不合时宜,更新颜色
color="颜色 " 或者 sns. set_palette(" 色盘")
常用的颜色有:
这里推荐这个网站:中国色,里面有非常多美丽的颜色,调色师、设计师必备哦
常用的色板有:
多维图表
更多维
用面积大小和颜色来区分新的变量
- 气泡图
-
引入新的数值变量,用面积大小来区分
-
plt.scatterplot(DataFrame,x=" “,y=” “,size=” ")
-
- 热力图 Heatmap
- 两个分类变量加一个数值变量
- x轴和y轴分别表示不同的分类变量,颜色代表数值变量
- plt.heatmap(annot=True)
- annot 该参数表示具体数值展示出来
- 复式条形图
- 在条形图的基础上引入多个条柱,则表示多个分类变量
- sns.barplot(data=DataFrame名,x=" “,y=” ",hue="分类变量 " )
补充的话
在基础图表的基础上加一种颜色加一下面积大小,即可表示更多的变量
plt.scatterplot(DataFrame,x=" “,y=” “,hue=” “,size=” ")
更改图例位置:
plt.legend(bbox_to_anchor=( 数字1 ,数字2))
- 数字1中有零/一可能性,数字2中有零/一可能性
- 数字一的零表示图例在图表的左边,一表示在图表的右边。
- 数字二的零表示图例在图表的下面,一表示在图表的上面。
互相对比
将这些图表互相对比,挖掘出更多信息
在同一个单元格里输入 多个相同的图表的公式
最后plt.show() 出来
此时多个相同图表就在一个图上了。
- binwidth 该参数可以改变图表的长度
- label 该参数为图例标签
例如以直方图为例
那么最后呈现的结果若没有展现出图例标签,则再加一个plt.legend()
密度图也是同样的道理,但不需要binwidth参数,因为它是一条平滑的曲线。
箱形图
- 没有label和binwidth参数,只有y轴/x轴参数
小提琴图也是同样的道理
但会显得很拥挤,更好选择是将分类变量作为x轴的变量,即x=" "
若想将不同的类型的图 并排放在一起
fig,axes=plt.subplots(行,列,figsize=(高,宽))
- fig 代表大图
- axis代表小图
这里是绘制空白图
在想要的图形种类中,加入ax参数=axes[n]
- n表示第n个子图,n从0开始
配对图 pairplot
- 能将DataFrame中的数值变量两两关系分布出来
- 将各变量的分布用直方图绘制出来
- 将不同变量两两之间的关系绘制成散点图
- sns.pairplot(,hue=" 分类变量")
- 可以探讨不同分类变量之间的数值关系
好的,到此为止啦,祝您变得更强
想说的话
实不相瞒,写的这篇博客写了十一个小时(加上自己学习和纸质笔记,共十三小时吧),很累,希望大佬支持
道阻且长 行则将至 |
---|
个人主页:在线OJ的阿川大佬的支持和鼓励,将是我成长路上最大的动力
相关文章:
数据可视化Python实现超详解【数据分析】
各位大佬好 ,这里是阿川的博客,祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 Python 初阶 Python–语言基础与由来介绍 Python–…...
Maxkb玩转大语言模型
Maxkb玩转大语言模型 随着国外大语言模型llama3的发布,搭建本地个人免费“人工智能”变得越来越简单,今天博主分享使用Max搭建本地的个人聊天式对话及个人本地知识域的搭建。 1.安装Maxkb开源应用 github docker快速安装 docker run -d --namemaxkb -p 8…...
React Hooks 封装可粘贴图片的输入框组件(wangeditor)
需求是需要一个文本框 但是可以支持右键或者ctrlv粘贴图片,原生js很麻烦,那不如用插件来实现吧~我这里用的wangeditor插件,初次写初次用,可能不太好,但目前是可以达到实现需求的一个效果啦!后面再改进吧~ …...
Wireshark TS | 应用传输丢包问题
问题背景 仍然是来自于朋友分享的一个案例,实际案例不难,原因也就是互联网线路丢包产生的重传问题。但从一开始只看到数据包截图的判断结果,和最后拿到实际数据包的分析结果,却不是一个结论,方向有点跑偏,…...
架构设计-web项目中跨域问题涉及到的后端和前端配置
WEB软件项目中经常会遇到跨域问题,解决方案早已是业内的共识,简要记录主流的处理方式: 跨域感知session需要解决两个问题: 1. 跨域问题 2. 跨域cookie传输问题 跨域问题 解决跨域问题有很多种方式,如使用springboot…...
==Redis淘汰策略(内存满了触发)==
好的,面试官。这个问题我需要从三个方面来回答。第一个方面: 当 Redis 使用的内存达到 maxmemory 参数配置的阈值的时候,Redis 就会根据配置的内存淘汰策略。 把访问频率不高的 key 从内存中移除。maxmemory 默认情况是当前服务器的最大内存…...
2024年高考作文考人工智能,人工智能写作文能否得高分
前言 众所周知,今年全国一卷考的是人工智能,那么,我们来测试一下,国内几家厉害的人工智能他们的作答情况,以及能取得多少高分呢。由于篇幅有限,我这里只测试一个高考真题,我们这里用百度的文心…...
Vue3学习记录第三天
Vue3学习记录第三天 背景说明学习记录Vue3中shallowReactive()和shallowRef()Vue3中toRaw()和markRaw()前端...语法Vue3中readonly()和shallowReadonly()函数前端的防抖 背景 之前把Vue2的基础学了, 这个课程的后面有简单介绍Vue3的部分. 学习知识容易忘, 这里仅简答做一个记录…...
数仓建模中的一些问题
在数仓建设的过程中,由于未能完全按照规范操作, 从而导致数据仓库建设比较混乱,常见有以下问题: 数仓常见问题 ● 数仓分层不清晰:数仓的分层没有明确的逻辑,难以管理和维护。 ● 数据域划分不明确…...
spring整合kafka
原文链接:spring整合kafka_spring集成kafka-CSDN博客 1、导入依赖 <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>2.5.10.RELEASE</version> </depende…...
【web前端】CSS样式
CSS应用方式 在标签 <h2 style"color: aquamarine">hello world!</h2> 在head标签中写style标签 <head><meta charset"UTF-8"><title>Title</title><style>.c1{height: 100px;}.c2{height: 200px;color: aqua;…...
【ARM Cache 与 MMU 系列文章 7.7 – ARMv8/v9 MMU Table 表分配原理及其代码实现 1】
请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 MMU Table 表分配原理及其代码实现虚拟地址空间 Region的配置系统物理地址位宽获取汇编代码实现MMU Table 表分配原理及其代码实现 假设当前系统中需要映射多个region,其中第一个要映…...
AIGC之MetaHuman:HeyGen(基于AI驱动的视频生成平台+数字人)的简介、安装和使用方法、案例应用之详细攻略
AIGC之MetaHuman:HeyGen(基于AI驱动的视频生成平台数字人)的简介、安装和使用方法、案例应用之详细攻略 目录 HeyGen的简介 1、HeyGen是一款AI视频生成平台,它提供以下关键功能: HeyGen的安装和使用方法 1、使用方法 01创建或选择一个头…...
6.7-6.10作业
1. /*1.使用switch实现银行系统,默认用户为A,密码为1234,余额2000 如果登录失败,则直接结束 如果登录成功,则显示银行页面 1.查询余额 2.取钱 3.存钱 如果是1,则打印余额 如果是2,则输入取钱金…...
【Redis】Redis经典问题:缓存穿透、缓存击穿、缓存雪崩
目录 缓存的处理流程缓存穿透解释产生原因解决方案1.针对不存在的数据也进行缓存2.设置合适的缓存过期时间3. 对缓存访问进行限流和降级4. 接口层增加校验5. 布隆过滤器原理优点缺点关于扩容其他使用场景SpringBoot 整合 布隆过滤器 缓存击穿产生原因解决方案1.设置热点数据永不…...
从GPU到ASIC,博通和Marvell成赢家
ASIC市场上,博通预计今年AI收入将达到110亿美元以上,主要来自与Google和Meta的合作;Marvell预计2028年AI收入将达到70亿至80亿美元,主要来自与Amazon和Google的合作。 随着芯片设计和系统复杂性的增加,科技大厂将更多地…...
【java问答小知识6】一些Java基础的知识,用于想学习Java的小伙伴们建立一些简单的认知以及已经有经验的小伙伴的复习知识点
请解释Java中的双亲委派模型是什么? 回答:双亲委派模型是Java类加载机制的核心原则,它确保所有类加载器在尝试加载一个类之前,都会委托给它的父类加载器。 Java中的类路径(Classpath)是什么? 回…...
数学建模笔记
数学建模 定义角度 数学模型是针对参照某种事物系统的特征或数量依存关系,采用数学语言,概括地或近似地表述出的一种数学结构,这种数学结构是借助于数学符号刻画出来的某种系统的纯关系结构。从广义理解,数学模型包括数学中的各…...
shell编程(三)—— 控制语句
程序的运行除了顺序运行外,还可以通过控制语句来改变执行顺序。本文介绍bash的控制语句用法。 一、条件语句 Bash 中的条件语句让我们可以决定一个操作是否被执行。结果取决于一个包在[[ ]]里的表达式。 bash中的检测命令由[[]]包起来,用于检测一个条…...
反射学习记
Java 中的反射是什么意思?有哪些应用场景? 每个类都有⼀个 Class 对象,包含了与类有关的信息。当编译⼀个新类时,会产生一个同名的 .class 文件,该⽂件 内容保存着 Class 对象。类加载相当于 Class 对象的加载&a…...
使用Python操作Redis
大家好,在当今的互联网时代,随着数据量和用户量的爆发式增长,对于数据存储和处理的需求也日益增加。Redis作为一种高性能的键值存储数据库,以其快速的读写速度、丰富的数据结构支持和灵活的应用场景而备受青睐。本文将介绍Redis数…...
Vue-CountUp-V2 数字滚动动画库
安装: $ npm install --save countup.js vue-countup-v2示例如下: <template><div class"iCountUp"><ICountUp:delay"delay":endVal"endVal":options"options"ready"onReady"/>&…...
C语言详解(文件操作)1
Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习…...
Python Requests库详解
大家好,在现代网络开发中,与Web服务器进行通信是一项至关重要的任务。Python作为一种多才多艺的编程语言,提供了各种工具和库来简化这一过程。其中,Requests库作为Python中最受欢迎的HTTP库之一,为开发人员提供了简单而…...
Kafka 详解:全面解析分布式流处理平台
Kafka 详解:全面解析分布式流处理平台 Apache Kafka 是一个分布式流处理平台,主要用于构建实时数据管道和流式应用。它具有高吞吐量、低延迟、高可用性和高可靠性的特点,广泛应用于日志收集、数据流处理、消息系统、实时分析等场景。 &…...
RabbitMQ系列-rabbitmq无法重新加入集群,启动失败的问题
当前存在3个节点:rabbitmq5672、rabbitmq5673、rabbitmq5674 当rabbitmq5673节点掉线之后,重启失败 重启的时候5672节点报错如下: 解决方案 在集群中取消失败节点 rabbitmqctl forget_cluster_node rabbitrabbitmq5673删除失败节点5673的…...
postgresql之翻页优化
列表和翻页是所有应用系统里面必不可少的需求,但是当深度翻页的时候,越深越慢。下面是几种常用方式 准备工作 CREATE UNLOGGED TABLE data (id bigint GENERATED ALWAYS AS IDENTITY,value double precision NOT NULL,created timestamp with time zon…...
小白学Linux | 日志排查
一、windows日志分析 在【运行】对话框中输入【eventvwr】命令,打开【事件查看器】窗 口,查看相关的日志 管理员权限进入PowerShell 使用Get-EventLog Security -InstanceId 4625命令,可获取安全性日志下事 件 ID 为 4625(失败登…...
Spring6
一 概述 1.1、Spring是什么? Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测…...
数字孪生概念、数字孪生技术架构、数字孪生应用场景,深度长文学习
一、数字孪生起源与发展 1.1 数字孪生产生背景 数字孪生的概念最初由Grieves教授于2003年在美国密歇根大学的产品全生命周期管理课程上提出,并被定义为三维模型,包括实体产品、虚拟产品以及二者间的连接,如下图所示: 2011年&…...
怎么改网站关键词/网站制作维护
PMP的知识点最终是要以考试题的形式出现的,而且PMP考试题量很大,平均只有1分钟做一道题,因此必须通过大量的做题来增加题感。而且做题能最快的检验我们对每个知识点的掌握情况。 加入我们的PMP学习交流丘丘大家庭一起交流学习吧!…...
wordpress q&a/网络销售挣钱吗
行业领先的.NET界面控件——DevExpress v18.2日前正式发布,本站将以连载的形式为大家介绍新版本新功能。本文将介绍了DevExpress Reporting v18.2 的新功能,新版30天免费试用!点击下载>> 所有平台 Report Designer - Vertical Bands …...
宁河网站建设/东莞百度快速排名
分类算法很多,有的效果比较好,有的效果稍微差点。 这里还有一种“新”分类算法,就是把多个分类器组合成一个分类器,主要有bagging 和boosting两种。 bagging算法:从原始数据中随机抽取n个样本,重复s次&am…...
企业网站网站设计/推荐就业的培训机构
编写一下Android界面的项目使用默认的Android清单文件<?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android" package"com.itheima28.writedata" android:versionCo…...
网站架构模板/网站流量统计工具有哪些
1.修饰变量 1.1 作用 功能:不能直接被修改 const修饰变量,就相当于是定义了一个常量。该变量不能直接被修改,但是可以通过指针修改。 作用:便于维护、提前发现可能错误的修改 比如程序中大量使用了一个数字10,且不会…...
brophp框架做网站模板/个人网站搭建
从数字货币的特征不难看出,相对于当前的支付方式而言存在较为明显的优势:一是数字货币支付是基于一个完全开放的系统平台自主运作,可以不受时空的限制,具体应用场景较为多元;而当前的支付方式是依托相对封闭的支付系统…...