求一个用脚做asmr的网站/如何进行网站性能优化?
目录
- 概述
- 一、语法
- 二、常用单变量绘图
- 1. 直方图(histplot)
- 2. 核密度预估图(kdeplot)
- 3. 计数柱状图(countplot)
- 三、常用多变量绘图
- 1.散点图
- (1) scatterplot
- (2)regplot 散点图+拟合回归线
- (3)jointplot 散点图+直方图
- 2.蜂巢图
- 3. 2D KDE图
- 4.箱线图(boxplot)
- 5.小提琴图(violinplot)
- 四、Seaborn主题和样式
- 结语
概述
Seaborn是一个基于Matplotlib的Python数据可视化库,它提供了一种简单而美观的界面,帮助初学者轻松创建各种统计图表和数据可视化效果。
Seaborn的设计哲学以美学为中心,致力于创建最佳的数据可视化,同时也保持着与Python生态系统的高度兼容性,可以轻松集成到Python数据分析以及机器学习的工作流程中。Seaborn拥有丰富的可视化函数,能够创建多种类型的图表,包括折线图、柱状图、散点图、核密度图、热力图等等。
相比Matplotlib而言,Seaborn的绘图接口更为集成,通过少量参数设置就能实现大量封装绘图。多数图表具有统计学含义,例如分布、关系、统计、回归等。此外,它对Pandas和Numpy数据类型支持非常友好,风格设置也更为多样,包括风格、绘图环境和颜色配置等。
在进行EDA(Exploratory Data Analysis,探索性数据分析)过程中,Seaborn往往更为高效。然而,需要注意的是,Seaborn与Matplotlib的关系是互为补充而非替代,多数场合中Seaborn是绘图首选,而在某些特定场景下则仍需用Matplotlib进行更为细致的个性化定制。
总的来说,Seaborn是一个功能强大且易于使用的数据可视化库,无论是初学者还是有一定经验的数据分析师,都可以从中获得帮助,更好地理解和展示数据。
一、语法
import seaborn as sns
sns.图表类型plot(data=Dataframe, x='列1',y='列2',hue='类别型' )
参数解释:
- x, y:
x:指定用于柱状图横坐标的变量名(类别型数据)。
y:指定用于柱状图纵坐标的变量名(数值型数据),即每个类别的值。 - data:
指定绘图所需的数据集,通常是一个 pandas DataFrame。 - hue:
用于将数据进行分组的变量名。这个变量将决定每个柱子中的不同颜色分段,用于表示另一个分类维度的信息。
二、常用单变量绘图
1. 直方图(histplot)
语法:
sns.histplot(data=Dataframe,x=列,y=列,bins=n,kda=False,hue='分类变量')
参数:
-
data:
要绘制直方图的数据集,通常是一个 pandas DataFrame 或 Series,也可以是其他可以被转换为数组的数据类型。 -
x, y:
x 和 y 用于指定要绘制直方图的数据列。对于单变量直方图,通常只需要指定 x 参数。如果指定了 y 参数,则绘制的是二维直方图(或称为热图)。 -
bins:
指定直方图的区间数量。可以是整数(表示区间数量)或区间边界的序列。 -
kde
是否使用 Kernel Density Estimation (KDE) 来绘制数据的概率密度曲线(核密度预估图)。 -
hue:
指定用于分组绘制直方图的分类变量。不同组的直方图会以不同的颜色显示。(用于多变量时)
sns.histplot(data=tip,x='total_bill',bins= 10,kde= True)
2. 核密度预估图(kdeplot)
sns.kdeplot(data=tip,x='total_bill')
图表展示:
3. 计数柱状图(countplot)
sns.countplot(data=tip,x='day')
图表展示:
三、常用多变量绘图
1.散点图
(1) scatterplot
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 正常显示汉字
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号
# 散点图
# 1. 绘制画布
fig, ax = plt.subplots(figsize=(12, 6))
# 2. 绘制散点图, x轴: 总账单, y轴: 小费, hue: 基于哪列分组
sns.scatterplot(data=tips, x='total_bill', y='tip', hue='sex')
# 3. 设置标题
ax.set_title('总账小费之间关系图')
# 4. 绘制图片
plt.show()
图表展示:
(2)regplot 散点图+拟合回归线
fit_reg参数: 默认是True 会拟合一条直线 就是利用这一份数据 跑了线性回归
# 散点图
# 1. 绘制画布
fig, ax = plt.subplots(figsize=(12, 6))# 2. 绘制散点图
# fit_reg 默认是True 会拟合一条直线 就是利用这一份数据 跑了线性回归
# fit_reg=False 可以关掉
sns.regplot(data=tips, x='total_bill', y='tip', fit_reg=True)
# 3. 设置标题
ax.set_title('总账小费之间关系图')
# 4. 绘图
plt.show()
图表展示:
(3)jointplot 散点图+直方图
# 2. 绘制散点图
sns.jointplot(data=tips, x='total_bill', y='tip')
图表展示:
2.蜂巢图
kinde=‘hex’, 加了这个属性就是 蜂巢图, 不加就是散点图.
height 作用为改变图表大小
# kinde='hex', 加了这个属性就是 蜂巢图, 不加就是散点图.
# sns.jointplot(data=tips, x='total_bill', y='tip', height=12) # 散点图, 每行每列再绘制直方图.
sns.jointplot(data=tips, x='total_bill', y='tip', kind='hex', height=12) # 蜂巢图, 每行每列再绘制直方图.
plt.show()
图表展示:
3. 2D KDE图
2D KDE图,即二维核密度估计图(Kernel Density Estimation plot),是一种在二维平面上展示数据概率密度分布的可视化工具。在统计学和数据可视化中,KDE用于估计一个变量的概率密度函数,对于二维数据,可以估计两个变量之间的联合概率密度。
# 一维KDE 只传入x, 或者 只转入Y
# 二维KDE x,y 都传入
# fill=True 是否填充曲线内的颜色
# cbar=True 是否显示 右侧的颜色示意条
fig, ax = plt.subplots(figsize=(12, 6))
sns.kdeplot(data=tips, x='total_bill', y='tip', fill=True, cbar=True)
ax.set_title('2D KDE图')
plt.show()
图表展示:
4.箱线图(boxplot)
箱线图(Box Plot),又称为箱型图、盒须图、盒状图或箱状图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。它主要用于反映原始数据的分布特征,还可以进行多组数据分布特征的比 较。箱线图的绘制方法是:先找出一组数据的上边缘、下边缘、中位数和两个四分位数,然后, 连接两个四分位数画出箱体,再将上边缘和下边缘与箱体相连接,中位数在箱体中间。
箱线图包含的主要数据和含义如下:
中位数(Q2):数据集的中位数,即数据集中处于中间位置的数。在箱线图中,中位数以一条线表示,位于箱体的中间。
上四分位数(Q3):数据集中大于或等于所有数据75%的数。在箱线图中,上四分位数是箱体顶部的线。
下四分位数(Q1):数据集中小于或等于所有数据25%的数。在箱线图中,下四分位数是箱体底部的线。
上边缘(最大值):数据集中的最大值,但不包括任何可能被视为异常值的点。在箱线图中,上边缘以一条线表示,位于箱体上方的短线上。
下边缘(最小值):数据集中的最小值,同样不包括异常值。在箱线图中,下边缘以一条线表示,位于箱体下方的短线上。
此外,箱线图通常还会标出异常值,这些点通常远离箱体的主体部分,可能表示数据中的错误、测量误差或特殊事件。
# 箱线图: 用于显示多种统计信息:最小值,1/4分位,中位数,3/4分位,最大值,以及离群值(如果有)
# 1. 绘制画布, 坐标
fig, ax = plt.subplots(figsize=(12, 6))
# 2. 绘制 箱线图.
sns.boxplot(data=tips, x='time', y='total_bill')
ax.set_title('总账小费之间关系图')
plt.show()
代码实现:
5.小提琴图(violinplot)
小提琴图(Violin Plot)是一种数据可视化图表,它结合了箱线图和核密度图的特点,用于展示数据的分布和概率密度。小提琴图通常用于比较多个组或类别之间的数据分布,以及观察单个变量的分布情况。
小提琴图的主体部分是一组垂直排列的“小提琴”形状,每个小提琴代表一个数据组或类别。小提琴的宽度表示数据点在该位置的密度,越宽表示该位置的数据点越多,越窄则表示数据点越少。中间的黑色粗线条表示四分位数的范围,即25%至75%的数据分布范围。从小提琴的顶部和底部延伸出来的细线(称为“须”),表示数据的最大值和最小值或95%的置信区间。
与箱线图相比,小提琴图的优势在于除了显示中位数、四分位数等统计数据外,还展示了数据的整体分布形状,从而提供了更丰富的信息。
# 多变量, 通过 颜色区分.
# 例如: 使用violinplot函数时,可以通过hue参数按性别(sex)给图着色, 可以为“小提琴”的左右两半着不同颜色,用于区分性别# white, dark, whitegrid, darkgrid, ticks
# sns.set_style('ticks')fig, ax = plt.subplots(figsize=(12, 6))
sns.violinplot(data=tips, x='time', y='total_bill', hue='sex', split=True) # hue='性别'
ax.set_title('总账小费之间关系图')
plt.show()
图表展示:
四、Seaborn主题和样式
上面的Seaborn图都采用了默认样式,可以使用sns.set_style函数更改样式。
该函数只要运行一次,后续绘图的样式都会发生变化
Seaborn有5种样式:
- darkgrid 黑色网格(默认)
- whitegrid 白色网格
- dark 黑色背景
- white 白色背景
- ticks 刻度线
语法:
sns.set_style('主题名')fig,ax = plt.subplots()
ax = sns.violinplot(x='time',y='total_bill',hue='sex',data = tips,split = True)
结语
到目前为止panda入门已经学完了,接下来就是运用pandas强大的功能去完成实际的项目啦。
本系列博客主要深入介绍了Pandas这个强大的Python数据处理库,其核心功能和应用场景。我们详细探讨了以下几个方面:
-
核心数据结构:Pandas提供了两个核心数据结构——DataFrame和Series。DataFrame是一个二维的、大小可变的、可以存储多种类型数据的表格型数据结构,它非常适合存储和处理现实世界中的表格数据,如CSV文件或数据库中的数据。Series则是一维数组型数据结构,用于处理单一类型的数据序列。
-
数据操作功能:Pandas提供了丰富的数据操作功能,包括数据筛选、排序、分组聚合、数据转换等。这些功能使得用户可以轻松地对数据进行各种复杂的操作,从而满足不同的数据处理和分析需求。
-
数据处理流程:我们学习了Pandas在数据处理流程中的应用,包括数据读取、数据清洗、数据转换和数据输出等步骤。Pandas能够方便地处理缺失值、异常值,提供数据重塑和合并等功能,使数据处理流程更加高效和自动化。
-
与其他库的集成:Pandas能够与其他Python库无缝集成,如NumPy用于数值计算、Matplotlib、seaborn用于数据可视化等。这种集成性使得Pandas在数据处理和分析领域具有更广泛的应用前景。
-
性能优化:我们还探讨了如何在使用Pandas时进行优化,包括利用向量化操作提高性能、选择合适的数据类型减少内存占用等。这些优化技巧能够帮助我们更高效地使用Pandas处理大规模数据集。
下次的专栏就是机器学习啦,如果学习的途中有疑问,欢迎在评论区留言,有时间的话,一定会回复哈!!
相关文章:

Pandas入门篇(三)-------数据可视化篇3(seaborn篇)(pandas完结撒花!!!)
目录 概述一、语法二、常用单变量绘图1. 直方图(histplot)2. 核密度预估图(kdeplot)3. 计数柱状图(countplot) 三、常用多变量绘图1.散点图(1) scatterplot(2)regplot 散点图拟合回归线(3)jointplot 散点图…...

SpringBoot中阿里OSS简单使用
官方文档:Java跨域设置实现跨域访问_对象存储(OSS)-阿里云帮助中心 1.pom中引入依赖 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.1</version> </dependency> 如…...

websocket简介
服务端推送消息给浏览器 WebSocket 教程 - 阮一峰的网络日志...

Linux的shell外壳
Shell外壳 在计算机领域,“shell”(外壳)是指一种用户界面,提供了访问操作系统服务的方式。Shell 是用户与操作系统之间的桥梁,它解释并执行用户输入的命令。 Shell 的主要功能包括: 命令解释:…...

支付宝支付流程
第一步前端:点击去结算,前端将商品的信息传递给后端,后端返回一个商品的订单号给到前端,前端将商品的订单号进行存储。 对应的前端代码:然后再跳转到支付页面 // 第一步 点击去结算 然后生成一个订单号 // 将选中的商…...

打招呼得不到回复,跟头像还有关系?
现在很多人有个想法,那就是觉得某些公司是不是为了某些目的才往出发的招聘信息啊,其实他们并不需要招聘新员工。 目录 已读不回? 头像很重要 选择自己的精修照片 已读不回? 很有这种可能,但你细心观察会发现,的确有很多大公司,...

【网络原理】HTTPS 的工作过程
系列文章目录 【网络通信基础】网络中的常见基本概念 【网络编程】网络编程中的基本概念及Java实现UDP、TCP客户端服务器程序(万字博文) 【网络原理】UDP协议的报文结构 及 校验和字段的错误检测机制(CRC算法、MD5算法) 【网络…...
Python语言在地球科学中地理、气象、气候变化、水文、生态、传感器等数据可视化到常见数据分析方法的使用
Python是功能强大、免费、开源,实现面向对象的编程语言,Python能够运行在Linux、Windows、Macintosh、AIX操作系统上及不同平台(x86和arm),Python简洁的语法和对动态输入的支持,再加上解释性语言的本质&…...

【JVM】class文件格式,JVM加载class文件流程,JVM运行时内存区域,对象分配内存流程
这篇文章本来只是想讲一下class文件格式,讲着讲着越讲越多。JVM这一块吧,知识比较散比较多,如果深研究下去如死扣《深入理解Java虚拟机》,这本书很深很细,全记住是不可能的,其实也没必要。趁这个机会直接把…...

GPU系列(六)-NVIDIA GPU 驱动安装
1. 安装驱动 1.1 查看系统是否识别显卡 lspci | grep -i vga03:00.0 VGA compatible controller: NVIDIA Corporation GP102 [TITAN X] (rev a1) 0a:00.0 VGA compatible controller: Matrox Electronics Systems Ltd. G200eR2 (rev 01) 识别出显卡为 NVIDIA 的 TITAN X。 …...

第十五届蓝桥杯总结
因为本人不是计院的,以后可能也不会打算法类的竞赛了,故作此总结,纪念我四个月的算法学习经历,还算是对算法有了一定的基础,碰运气拿下了湖北b组省二,个人感觉比赛题目没有第十四届难,感觉就是纯…...

Linux驱动开发——(八)Linux异步通知
目录 一、异步通知简介 二、信号处理 2.1 驱动程序中的处理 2.1.1 fasync_struct结构体 2.1.2 fasync操作函数 2.1.3 kill_fasync函数 2.2 应用程序中的处理 三、驱动代码 一、异步通知简介 异步通知的核心就是信号。信号类似于硬件上使用的中断,只不过信号…...

Docker知识点汇总表格总结
Docker容器给我的一个很直观的感受就是将项目以及中间件安装变得比较简单直接,运行维护起来也更方便。之前做的一些微服务项目也是用docker来部署,现在很多开源的项目也流行使用docker来部署,简化了很多手动安装和配置的步骤,将项…...

Golang中实现调用Windows API向指定目标发送ARP请求
简介 Go库中很多实现的arp都是支持osx/linux/bsd之类的, 但几乎没有支持windows的, 也试了一些方式, 目前还是选用调用windows的API, 记录一下这一次windows的API的调用经验。 实现 代码 package main/* #cgo CFLAGS: -I. #cgo …...

这是一个简单的照明材料网站,后续还会更新
1、首页效果图 代码 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>爱德照明网站首页</title><style>/*外部样式*/charset "utf-8";*{margin: 0;padding: 0;box-sizing: border-box;}a{text-dec…...

【设计模式】之模板方法模式
系列文章目录 【设计模式】之策略模式 【设计模式】之责任链模式 文章目录 系列文章目录 前言 一、什么是模板方法模式 定义 角色 二、为什么要使用模板方法模式 优点 缺点 三、案例 普通案例 模拟Servlet过程案例 总结 前言 今天给大家介绍23种设计模式中的模板方法模式&a…...

【系统架构师】-选择题(十一)
1、紧耦合多机系统一般通过(共享内存)实现多机间的通信。对称多处理器结构(SMP)属于( 紧耦合)系统。 松耦合多机系统又称间接耦合系统,—般是通过通道或通信线路实现计算机间的互连。 2、采用微内核的OS结构…...

前端开发攻略---介绍HTML中的<dialog>标签,浏览器的原生弹框。
1、演示 2、介绍 <dialog> 标签用于定义对话框,即一个独立的窗口,通常用来显示对话框、提示框、确认框等弹出式内容。在对话框中,可以包含文本、表单元素、按钮等内容,用户可以和这些内容进行交互。 3、兼容性 4、示例代码 …...

让外贸业绩翻倍的销售话术分享
业绩翻三倍的话术,今后无论你遇到挑剔、犹豫、理智的顾客,都能轻松搞定。点赞存起来慢慢看,以免找不到。 与客户有效沟通技巧5的20句金句 业绩翻 3 倍,今后无论你遇到挑剔、犹豫、理智的顾客,都能轻松搞定。点赞存起来…...

观测与预测差值自动变化系统噪声Q的自适应UKF(AUKF_Q)MATLAB编写
简述 基于三维模型的UKF,设计一段时间的输入状态误差较大,此时通过对比预测的状态值与观测值的残差,在相应的情况下自适应扩大系统方差Q,构成自适应无迹卡尔曼滤波(AUKF),与传统的UKF相比&…...

虚拟数据中心
创建数据中心和连接宿主机 DRS:收集群集内所有主机和虚拟机的资源使用情况信息,并根据特定的运行状况给出建议或迁移虚拟机HA:如果一台主机出现故障,则该主机上运行的所有虚拟机都将立即在同一群集的其他主机上重新启动EVC:增强型vMotionVirtual SAN:集中…...

解决Blender导出FBX文件到Unity坐标轴错误的问题
发现Blender的模型导入到Unity里面有问题,简单研究了下发现是坐标系不同,Unity使用的是左手坐标系,Blender使用的是右手坐标系 。 下面直接将如何解决 首先忽略Blender的右手坐标系以及Z轴朝上的事,依照unity坐标系情况修改模型物体的旋转,以Blender猴…...

基于微信小程序的校园二手闲置物品交易平台的设计与实现
基于微信小程序的校园二手闲置物品交易平台的设计与实现 “Design and Implementation of a Campus Second-Hand Marketplace Platform based on WeChat Mini Program” 完整下载链接:基于微信小程序的校园二手闲置物品交易平台的设计与实现 文章目录 基于微信小程序的校园二…...

java中多线程的3种实现方法
1.继承Thread类 优点:代码简单,可以直接使用Thread类里面的方法。 缺点:扩张性较差,应为在java中,一个类只能继承一个父类。 2.实现Runnable接口 3.实现Callable接口 2和3的优缺点是一样的 优点:扩展性强&…...

【Docker】docker compose服务编排
docker compose 简介 Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。 docker swarm(管理跨节点) Dockerfile可以让用户管理一个单独的应用容器;而Compose则允许用户在一个模板(…...

elementui的el-select+el-tree+el-input实现可搜索的下拉树组件
部分实现代码如下 <template> <div><el-selectv-model"item.TableName"placeholder"请选择":disabled"!item.disabled"visible-change"handleVisible"ref"TableName"><el-input placeholder"请输…...

微信公众号排名 SEO的5个策略
随着微信公众号在社交媒体领域的持续发展和普及,如何提升公众号的搜索排名,成为许多运营者关注的焦点。公众号排名SEO,即针对微信公众号进行搜索引擎优化,旨在提高公众号在搜索结果中的曝光率和点击率。下面,我们将深入…...

python烟花代码
在Python中,可以使用多种方式来模拟烟花效果,其中一种常见的方法是使用turtle图形库来绘制。以下是一个简单的示例,展示了如何使用turtle来创建一个烟花效果的动画: import turtle import random# 设置屏幕和背景 screen turtle…...

Python高级编程
描述 集合,列表生成式,生成器,迭代器,切片 Python 中的集合类型是一种无序、不重复的数据容器,用于存储可哈希(hashable)的元素。Python 提供了两种内置的集合类型:set 和 frozens…...

leetCode75. 颜色分类
leetCode75. 颜色分类 题目思路 代码 class Solution { public:void sortColors(vector<int>& nums) {for(int i 0, j 0, k nums.size() - 1; i < k;){if(nums[i] 0) swap(nums[i],nums[j]);else if(nums[i] 2) swap(nums[i],nums[k--]);else if(nums[i] …...