什么网站做蔬菜生鲜比较好/郑州网站关键词优化外包
Seaborn 简介
Seaborn 是一个基于 Matplotlib 的图形可视化 Python 库,提供了高度交互式的接口,使用户能够轻松绘制各种吸引人的统计图表。Seaborn 可以直接使用 Pandas 的 DataFrame 和 Series 数据进行绘图。
1. Seaborn 绘制单变量图
(1) 直方图 histplot
-
hue
: 根据另一个分类变量对数据进行分组并显示不同颜色的直方图。 -
kde
: 是否绘制核密度估计曲线。 -
其他常用参数:
bins
: 控制直方图的条数。stat
: 选择统计方式(如 density 或 count)。
示例代码:
import seaborn as sns
import matplotlib.pyplot as plt# fig 画布对象, ax坐标轴对象
fig, ax = plt.subplots(figsize=(10, 5))
# todo data: 要操作的 df或Series对象
# todo x, y: x轴 和 y轴 数据
# todo bins: 直方图, 划分区间的个数
# todo hue: 分组字段, 默认为None, 会按照该字段分组, 把相同分组数据画到一张图上
# todo kde: 绘制 核密度预估曲线
sns.histplot(data=tips, x='total_bill', bins=10, hue='sex', kde=True)
ax.set_title('直方图-总消费金额分布情况')
plt.show()
(2) 密度图 kdeplot
- X 轴: 样本数据。
- Y 轴: 密度值。
fill
: 是否填充曲线下方区域。- 其他常用参数:
bw_adjust
: 调整带宽以控制平滑度。
示例代码:
# todo 密度图是连续的 -> 概率分布 直方图是离散的 -> 样本数据
# todo 应用场景: 基于少量的样本数据, 去推理 总体数据的概率分布情况fig, ax = plt.subplots(figsize=(10, 5))
sns.kdeplot(data=tips, x='total_bill')
ax.set_title('密度图-总消费金额分布情况')
plt.show()
(3) 计数图 countplot
color
: 仅支持单一颜色。hue
: 可用来在每个条形中分组显示不同的类别。- 其他常用参数:
order
: 控制条形图中类别的顺序。
示例代码:
# todo 计数图 = 按照某个字段分组, 统计每个分组的数量, 然后绘制成 条形图(柱状图)
# 按照 星期分组, 统计每个星期的 消费次数
# 方式一
fig, ax = plt.subplots(figsize=(10, 5))
sns.countplot(data=tips, x='day', color='b')
ax.set_title('消费次数分布情况')
plt.show()# 方式二: 手动分组 + 聚合计算
tips.day.value_counts().plot.bar(figsize=(10, 5), color=['red', 'blue', 'yellow'])
ax.set_title('消费次数分布情况')
plt.show()
2. Seaborn 双变量数据可视化
(1) 散点图 scatterplot
-
hue
: 根据另一变量划分颜色。(分组字段) -
size
: 根据另一变量划分点的大小。 -
其他常用参数:
-
style
: 根据另一变量改变点的形状。
示例代码:
# hue: 分组字段
fig, ax = plt.subplots(figsize=(10, 5))
# 2. 绘制散点图, 分析: 总消费金额, 小费 之间的关系.
# sns.scatterplot(data=tips, x='total_bill', y='tip')
sns.scatterplot(data=tips, x='total_bill', y='tip', hue='sex')
ax.set_title('散点图-总消费金额和消费之间的关系')
plt.show()
(2) 回归图 regplot
-
fit_reg
: 默认绘制线性拟合回归线,设为False
可禁用。 -
其他常用参数:
-
ci
: 置信区间的大小。
示例代码:
fig, ax = plt.subplots(figsize=(10, 5))
# todo fit_reg: 是否绘制回归线, 默认为 True
# todo 拟合回归线: 基于数据点(散点), 拟合出一条直线, 底层运行: 线性回归
sns.regplot(data=tips, x='total_bill', y='tip', fit_reg=True)
# sns.regplot(data=tips, x='total_bill', y='tip', fit_reg=False)
ax.set_title('散点图-总消费金额和消费之间的关系')
plt.show()
(3) 联合图 jointplot
一些函数在绘图的时候, 是直接绘制的, 无需指定画板, 也没有 figsize属性设置(图形宽高), 但一般有 height属性, 设置图形宽高: 如 jointplot, 可以把 jointplot()理解为: 散点图 + 直方图(每行每列都会绘制直方图)
-
kind
: 绘制的图的类型(如 scatter, kde(密度图), hex(蜂巢图))。 -
height
: 图的高度。 -
其他常用参数:
-
hue
: 分组显示不同的类别。
示例代码:
sns.jointplot(data=tips, x='total_bill', y='tip', kind='scatter', height=8)
plt.title('Jointplot of Total Bill and Tip')
plt.show()
(4) 2D 密度图 kdeplot
-
fill
: 填充密度图。 -
cbar
: 显示颜色区间图例。 -
其他常用参数:
-
levels
: 指定绘制的等高线的数量。
示例代码:
# 1. 获取 画布, 坐标轴对象
fig, ax = plt.subplots(figsize=(10, 5))
# 2. 设置2D密度图
# todo cbar: 是否绘制颜色条 fill: 是否填充颜色
sns.kdeplot(data=tips, x='total_bill', y='tip', fill=True, cbar=True)
ax.set_title('2D Ked TotalBill & Tip')
plt.show()
(5) 箱线图 boxplot
-
定义: 显示数据的分位数及异常值。
-
组成部分: 包括上边缘、上四分位数、中位数、下四分位数、下边缘、异常值。
-
其他常用参数:
-
hue
: 根据分类变量分组显示箱线。 -
箱子的中间有一条线,代表了数据的中位数
-
箱子的上下底,分别是数据的上四分位数(Q3)和下四分位数(Q1)
-
箱体包含了50%的数据。因此,箱子的高度在一定程度上反映了数据的波动程度
-
上下边缘则代表了该组数据的最大值和最小值
-
IQR = 上四分位数(Q3) - 下四分位数(Q1)
四分位距(interquartile range, IQR),又称四分差
-
判断异常值时最大值 = 上四分位数(Q3) + 1.5 IQR 大于这个值的就是异常值
-
判断异常值时最小值 = 下四分位数(Q1)- 1.5 IQR 小于这个值的就是异常值
-
-
有时候箱子外部会有一些点,可以理解为数据中的“异常值”
示例代码:
# 需求: 通过 箱线图(盒须图, 箱子图), 分析: 总消费金额, 时间 之间的关系.
# todo IQR = Q3 - Q1 : InterquantileRange四分位距表示法
fig, ax = plt.subplots(figsize=(10, 5))
sns.boxplot(data=tips, x='time', y='total_bill')
ax.set_title('箱线图-分析就餐时间和消费总金额之间的关系0')
plt.show()
(6) 小提琴图 violinplot
小提琴图, 它是经典的可视化方法,但可能会掩盖数据的分布
小提琴图能显示与箱线图相同的值, 小提琴图把"箱线"绘成核密度估计,
有助于保留数据的更多可视化信息
- 优势
- 小提琴图同时展示了数据的统计分布和概率密度,能够更好地揭示数据的形态和特征。
- 小提琴图可以通过分组变量进行比较分析,方便观察不同类别间的差异。
- 小提琴图能够显示数据的离散程度,通过观察图形的宽度可以了解数据的散布情况。
-
定义: 在箱线图基础上添加了核密度估计,有助于显示数据分布。
-
hue
: 支持分组显示。 -
split
: 分割不同类别的小提琴图。 -
其他常用参数:
-
inner
: 指定内部显示的内容(如 box, quartile)。
示例代码:
fig, ax = plt.subplots(figsize=(12, 6))
# split = True 默认是False 当使用hue的时候会生效, 会在一个violin中切开 一半显示一个类别
sns.violinplot(data=tips, x='day', y='total_bill', hue='sex', split=True)
plt.title('Violinplot of Total Bill by Day and Sex')
plt.show()
3. 多变量数据
绘制多变量数据没有固定的套路,可以使用颜色、大小和形状来区分数据:
- 通过颜色区分: 使用
hue
参数来区分不同类别。 - 通过大小区分: 使用
size
参数调整点的大小以表示数量。
4. Seaborn 主题和样式
使用 sns.set_style()
来设置主题风格,Seaborn 中有五种样式:
- white: 白色背景无网格。
- whitegrid: 白色网格。
- dark: 黑色背景无网格。
- darkgrid: 黑色网格(默认)。
- ticks: 带刻度线的样式。
5. 数据可视化选择
- Seaborn 和 Pandas: 适合快速绘制和探索性分析,但不适合精细化调整。
- Matplotlib: 更适合需要精细化控制的绘图需求。
6. 其他知识
1. 数据准备和清洗
在绘图之前,确保数据的质量是非常重要的。以下是一些常用的数据准备和清洗步骤:
- 处理缺失值:
import pandas as pd# 读取数据
df = pd.read_csv('data.csv')# 检查缺失值
print(df.isnull().sum())# 删除缺失值
df.dropna(inplace=True)# 或用填充方式处理缺失值
df.fillna(df.mean(), inplace=True)
- 处理异常值:
# 使用 Z-score 方法识别异常值
from scipy import statsdf = df[(np.abs(stats.zscore(df['column_name'])) < 3)]
Z-score(标准分数)是衡量一个数据点与数据集均值的偏离程度的一种统计量。它表示该数据点与均值的距离,以标准差为单位。具体定义如下:
Z = ( X − μ ) / σ Z=(X−μ)/σ Z=(X−μ)/σ
- Z : Z − s c o r e Z:Z-score Z:Z−score
- X :数据点的值 X:数据点的值 X:数据点的值
- μ :数据集的均值 μ:数据集的均值 μ:数据集的均值
- σ :数据集的标准差 σ:数据集的标准差 σ:数据集的标准差
解释:
- 如果 Z-score 为 0,表示数据点等于均值。
- 如果 Z-score 为正,表示数据点高于均值;如果为负,表示数据点低于均值。
- 一般情况下,Z-score 大于 3 或小于 -3 的数据点通常被认为是异常值(outliers)。
2. 图形美化
Seaborn 提供了多种美化图形的方式。可以使用调色板和样式参数。
- 调色板:
import seaborn as sns# 设置调色板
sns.set_palette("pastel") # 可选 "deep", "muted", "bright", "pastel", "dark", "colorblind"
- 美化图形:
sns.scatterplot(x='x_column', y='y_column', data=df)
plt.title('Title', fontsize=16)
plt.xlabel('X Axis Label', fontsize=14)
plt.ylabel('Y Axis Label', fontsize=14)
3. 保存图形
使用 plt.savefig()
可以将绘制的图形保存到文件中。
import matplotlib.pyplot as plt# 绘图
sns.histplot(df['column_name'])
plt.title('Histogram')# 保存图形
plt.savefig('histogram.png', dpi=300, bbox_inches='tight')
4. 调试和错误处理
在使用 Seaborn 时,可能会遇到一些常见的错误。以下是一些解决方案:
- KeyError: 当尝试使用不存在的列名时,会抛出 KeyError。确保你使用的列名在 DataFrame 中确实存在。
- ValueError: 如果数据类型不正确(例如,尝试在数值列上使用分类图),可能会抛出 ValueError。检查数据类型并进行转换:
df['column_name'] = df['column_name'].astype(float)
- AttributeError: 使用不支持的方法或属性时,可能会抛出此错误。确保你在正确的对象上调用方法。
7. 绘制 线性回归模型
在 seaborn
中,lmplot
是用于绘制线性回归模型的绘图函数。它结合了回归线和散点图,帮助用户直观地分析两个变量之间的关系,并通过回归线展示趋势。以下是 lmplot
的一些常用参数和基本用法:
语法:
seaborn.lmplot(x, y, data, **kwargs)
参数:
- x: 字符串,指定数据集中作为 x 轴的变量名称。
- y: 字符串,指定数据集中作为 y 轴的变量名称。
- data: 数据集(通常是 Pandas 的 DataFrame),指定要绘制的原始数据。
- hue: (可选)字符串,指定分类变量,用于在不同类别间绘制不同的回归线和散点。
- col: (可选)字符串,指定列变量,根据该变量将数据分为多个小图。
- row: (可选)字符串,指定行变量,与
col
类似,但是按行排列。 - fit_reg: 布尔值,控制是否绘制回归线(默认为 True)。
- markers: 用于指定散点的标记类型。
- palette: 调色板,用于控制不同类别的颜色。
示例用法:
-
简单线性回归图:
import seaborn as sns import matplotlib.pyplot as plt# 加载示例数据集 tips = sns.load_dataset('tips')# 绘制总账单与小费之间的线性回归图 sns.lmplot(x="total_bill", y="tip", data=tips) plt.show()
-
使用分类变量的线性回归:
sns.lmplot(x="total_bill", y="tip", hue="smoker", data=tips) plt.show()
上面的例子中,
hue="smoker"
会基于是否吸烟绘制不同的回归线。 -
多图绘制(基于行和列分类):
sns.lmplot(x="total_bill", y="tip", col="sex", row="smoker", data=tips) plt.show()
这样可以根据
sex
和smoker
分类,生成多个子图。
相关文章:

数据处理与统计分析——11-Pandas-Seaborn可视化
Seaborn 简介 Seaborn 是一个基于 Matplotlib 的图形可视化 Python 库,提供了高度交互式的接口,使用户能够轻松绘制各种吸引人的统计图表。Seaborn 可以直接使用 Pandas 的 DataFrame 和 Series 数据进行绘图。 1. Seaborn 绘制单变量图 (1) 直方图 h…...

【计算机网络】实验13:运输层端口
实验13 运输层端口 一、实验目的 本次实验旨在验证TCP和IP运输层端口号的作用,深入理解它们在网络通信中的重要性。通过实验,我将探讨端口号如何帮助区分不同的应用程序和服务,使得在同一台主机上能够同时运行多个网络服务而不发生冲突。此…...

STL之适配器(adapters)_下
STL之适配器adapters container adapersstackqueue iterator adaptgersinsert iteratorsreverse iteratorsstream iterators function adapters对返回值进行逻辑判断:not1,not2对参数进行绑定:bind1st, bind2nd用于函数合成:compose1,compose2用于函数指针 ptr_func…...

基于51单片机64位病床呼叫系统设计( proteus仿真+程序+设计报告+原理图+讲解视频)
基于51单片机病床呼叫系统设计( proteus仿真程序设计报告原理图讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0095 1. 主要功能: 基于51单片机的病床呼叫系统proteus仿…...

安装 Zookeeper 和 Kafka
注意:需要java环境 [roothcss-ecs-2a6a ~]# java -version java version "17.0.12" 2024-07-16 LTS Java(TM) SE Runtime Environment (build 17.0.128-LTS-286) Java HotSpot(TM) 64-Bit Server VM (build 17.0.128-LTS-286, mixed mode, sharing) [roo…...

操作系统输入输出系统知识点
I/O系统的功能、模型和接口 I/O系统的基本功能 隐藏物理设备的细节与设备的无关性提高处理机和I/O设备的利用率对1/0 设备进行控制确保对设备的正确共享 独占设备,进程应互斥地访问这些设备共享设备,在一段时间内允许多个进程同时访问的设备 错误处理 I…...

C语言控制语句与案例
控制语句与案例 1. 选择结构 1.1 if 语句 if 语句用于根据条件执行不同的代码块。最基本的语法形式如下: // 单分支 if (条件) {// 条件为真时执行的代码 }// 双分支 if (条件) {// 条件为真时执行的代码 } else {// 条件为假时执行的代码 }// 多分支 if (条件1…...

JVM的内存布局
Java虚拟机(JVM)的内存布局可以分为几个主要部分,每个部分都有特定的用途。以下是JVM内存布局的基本组成: 方法区(Method Area): 方法区是所有线程共享的内存区域,用于存储已被虚拟机…...

aws codepipeline + github + sonarqube + jenkins实践CI/CD
https://blog.csdn.net/u011564831/article/details/144007981文章浏览阅读1.2k次,点赞31次,收藏21次。本文使用 Jenkins 结合 CodeBuild, CodeDeploy 实现 Serverless 的 CI/CD 工作流,用于自动化发布已经部署 lambda 函数。在 AWS 海外区&a…...

mistralai 部署笔记
目录 mistralai 部署笔记 mistralai 部署笔记 #! /usr/bin/env python3 import os import sys import torch os.chdir(os.path.dirname(os.path.abspath(__file__)))current_dir = os.path.dirname(os.path.abspath(__file__))paths = [os.path.abspath(__file__).split(scri…...

Java——异常机制(上)
1 异常机制本质 (异常在Java里面是对象) (抛出异常:执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给JRE) 工作中,程序遇到的情况不可能完美。比如…...
坐标系,向量_batch及向量点乘部分知识
坐标系 Unity所采用的是左手坐标系。 对于Vector3.forward ,其坐标值为(0,0,1),为定值 而transform.forward 该值不固定,本地坐标正方向所在世界坐标系中的方向 向量 向量是终点位置减去起始点位置得…...

【计算机网络】期末速成(2)
部分内容来源于网络,侵删~ 第五章 传输层 概述 传输层提供进程和进程之间的逻辑通信,靠**套接字Socket(主机IP地址,端口号)**找到应用进程。 传输层会对收到的报文进行差错检测。 比特流(物理层)-> 数据帧(数据链路层) -> 分组 / I…...

【设计模式】结构型设计模式总结之代理模式、装饰模式、外观模式、享元模式
文章目录 代理模式示例结构分类动态代理 装饰模式示例结构使用场景与代理模式区别Context 外观模式结构示例使用场景Context 享元模式结构示例使用场景Message 代理模式 代理模式(Proxy Pattern) 是一种结构型设计模式,它提供了一个代理对象…...

11进阶篇:专业课论文阅读方向指南(2025版)
文章目录 第一个检索式:图情档核心期刊(北大 + CSSCI)发文情况研究方法类关键词研究主题类关键词论文阅读建议第二个检索式:川大公共管理学院在核心期刊(北大 + CSSCI)的发文情况研究方法类关键词研究主题类关键词特点关键词与2024年972(现815)两道题目的映射情况815信…...

watch里可以写异步吗
在Vue的 watch 中可以写异步,但通常不推荐。 原因 - 可维护性差: watch 的主要用途是响应式地监听数据变化。如果在里面写复杂的异步操作,会让代码逻辑变得难以理解和维护。例如,同时监听多个数据变化并触发不同异步操作时&am…...

基于 Spring Boot + Vue 的宠物领养系统设计与实现
引言 近年来,随着人们生活水平的提高,宠物逐渐成为许多家庭的重要成员。然而,宠物的流浪和弃养问题日益严重,这促使社会对宠物领养的需求不断增长。为解决宠物领养中信息不对称、领养流程复杂等问题,设计并实现一个基…...

leetcode399:除法求值
给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。 另有一些以数组 queries 表示的问题,其中 queries[j]…...

【10】MySQL中的加密功能:如何使用MD5加密算法进行数据加密
文章目录 1. MySQL加密功能概述2. MD5加密算法3. 在MySQL中使用MD5加密4. 使用更安全的加密方法总结 在现代的数据库应用中,数据的安全性和隐私性变得尤为重要。无论是存储用户的个人信息,还是保护敏感的业务数据,确保这些数据不会被未授权访…...

CSS的2D和3D动画效果
CSS的2D和3D动画效果:网页动态设计的魔法 在现代网页设计中,动画已经成为提升用户体验的重要元素。通过引入动态效果,我们不仅可以使交互更加流畅和直观,还能吸引用户的注意力,增强品牌认知度。CSS提供了强大的工具&a…...

30天学会Go--第9天 GO语言 Mysql 学习与实践
30天学会Go–第9天 GO语言 MySQL学习与实践 文章目录 30天学会Go--第9天 GO语言 MySQL学习与实践前言一、MySQL 基础知识1.1 MySQL 的核心特征1.2 MySQL 的常见使用情景 二、安装 MySQL2.1 Windows 安装2.2 macOS 安装2.3 Linux 安装 三、MySQL 常用命令3.1 数据库操作3.2 表操…...

跟李笑来学美式俚语(Most Common American Idioms): Part 54
Most Common American Idioms: Part 54 前言 本文是学习李笑来的Most Common American Idioms这本书的学习笔记,自用。 Github仓库链接:https://github.com/xiaolai/most-common-american-idioms 使用方法: 直接下载下来(或者clone到本地…...

Angular由一个bug说起之十一:排序之后无法展开 Row
问题现象 在使用 Material Table 时,排序功能触发了一个奇怪的 Bug:表格的 Row 无法展开。最终排查发现,问题的根源在于 trackBy 的错误使用。trackBy 方法接受两个参数:index(数据索引)和 row(…...

使用 Flutter 进行移动应用开发:深入探索
文章目录 前言一、介绍二、安装 Flutter 环境三、Flutter 应用结构与基础组件四、状态管理策略五、高级主题结语 前言 随着移动技术的迅猛发展,跨平台开发的需求日益增长。开发者们一直在寻找一种既能保证应用性能又能减少开发成本和时间的技术方案。Flutter 应运而…...

2024年天津市职业院校技能大赛高职组 “信息安全管理与评估”样题第三阶段
(四)第三阶段竞小组(赛项)目(300分) 第三阶段竞赛内容是:网络安全渗透(夺旗挑战赛CTF) 本模块要求参赛者作为攻击方,运用所学的信息收集、漏洞发现、漏洞利用等渗透测试技…...

docker批量创建cloudstack虚拟主机脚本
批量创建cloudstack脚本 #!/bin/bash # 配置变量 container_prefix"cloudworker-" base_ip"192.168.1." start_ip2 #开始ip start_container2 #上同 end_container4 #结束ip 包括 network_name"my_macvlan_network" image_name"dockedahi:…...

npm发布插件到私有仓库保姆级教程
在开发项目的过程中,我们经常需要安装插件依赖,那么怎么把自己开发的组件封装成一个插件,并发布到npm 插件市场或者上传到私有仓库里面呢?今天总结下自己发布插件到私有仓库的记录: 一、创建组件 执行命令创建一个空…...

WinRAR V7.10纯净体验
前言 很多同学在安装了WinRAR之后,每次用这个软件解压文件时,都会先跳出一个广。这个广就像打开了一个新窗口,很打扰人。从WinRAR的5.40版本开始,哪怕是简体中文版的,都会这样弹广告。不管你有没有注册账号࿰…...

scss文件内引入其他scss文件报错
1、今天在编译一些老项目的时候,老是提示下面信息 2、而且有很多Sass import rules are deprecated and will be removed in Dart Sass 3.0.0.警告 3、用npm view sass versions看,其中sass的最新版本是1.82.0 4、经过测试"sass": "1.75…...

1-12 GD32基于定时器输入捕获
前言: 基于本人对相关知识回顾与思考,仅供学习参考 目录 前言: 1.0 输入捕获 2.0 信号周期 3.0 定时器配置 4.0 定时器配置 5.0 定时器中断 后记: 1.0 输入捕获 2.0 信号周期 获取信号周期的方法,在第一次捕获与…...