【Python】数据可视化之点线图
目录
散点图
气泡图
时序图
关系图
散点图
Scatterplot(散点图)是一种用于展示两个变量之间关系的图表类型。在散点图中,每个观测值(或数据点)都被表示为一个点,其中横轴(X轴)代表一个变量的值,而纵轴(Y轴)代表另一个变量的值。这些点的位置(即它们在图表上的x和y坐标)反映了两个变量之间的关系。
散点图非常适合于初步探索两个变量之间是否存在关系,以及这种关系的强度和方向。通过观察点的分布模式,可以识别出正相关、负相关、无相关或非线性关系。在散点图中,远离大多数数据点的观测值(即异常值或极端值)很容易被识别出来。同时,在统计学中,散点图可以用于支持或反驳关于两个变量之间关系的假设。
散点图需要注意一些问题:
- 当数据点过多时,散点图可能会变得难以解读,因为点可能会重叠在一起。在这种情况下,可以考虑使用其他可视化方法,如密度图或六边形分箱图。
- 散点图只能显示两个变量之间的关系,如果数据集包含多个变量,可能需要使用其他类型的图表(如多维散点图或平行坐标图)来展示更多信息。
- 在解读散点图时,要注意数据点的分布是否均匀,以及是否存在潜在的偏差或异常值。
# 设置图形风格为whitegrid
sns.set(style="whitegrid")
# 加载diamonds数据集
diamonds = sns.load_dataset("diamonds")
# 创建一个8x8的图形
f, ax = plt.subplots(figsize=(8, 8))
# 去除图形的左边和底部的边框
sns.despine(f, left=True, bottom=True)
# x轴为depth,y轴为table,颜色为红色,数据为diamonds,坐标轴为ax,标记为圆形,大小为100,边框宽度为0.5,边框颜色为白色
sns.scatterplot(x="depth", y="table",color='r',data=diamonds, ax=ax, marker="o", s=100, linewidth=0.5, edgecolor="w")

也可以使用plt绘制
# 生成一些随机数据
np.random.seed(0)
x = np.random.rand(100)
y = np.random.rand(100)
# 设置图表大小
plt.figure(figsize=(10, 6))
# s是点的大小,c是颜色,alpha是透明度,edgecolors是边缘颜色
plt.scatter(x, y, s=50, c='blue', alpha=0.6, edgecolors='w')
# 添加标题和标签
plt.title('Scatterplot', fontsize=16)
plt.xlabel('X Axis', fontsize=14)
plt.ylabel('Y Axis', fontsize=14)
# 设置坐标轴范围
plt.xlim(0, 1)
plt.ylim(0, 1)
# 添加网格线
plt.grid(True, which='both', linestyle='--', linewidth=0.5)
# 显示图例
plt.legend(['Data'], loc='upper left', fontsize=12)
# 显示图表
plt.show()

气泡图
气泡图(Bubble Chart)是一种多变量的数据可视化图表,它是散点图的一种变体,也可以看作是散点图和百分比区域图的组合。气泡图通过引入第三个变量来展示三个变量之间的关系,使得数据展示更加丰富和全面。
- 多变量展示:能够同时展示三个或更多维度的数据。
- 直观比较:通过气泡的位置和大小,可以直观地比较不同类别的数据。
- 灵活性强:气泡图可以根据需要调整气泡的形状、颜色和透明度等属性,以增强视觉效果。
# 加载名为"planets"的数据集
planets = sns.load_dataset("planets")
# 创建一个颜色映射
cmap = sns.cubehelix_palette(as_cmap=True)
# 绘制散点图,x轴为"distance",y轴为"orbital_period",颜色映射为"year",大小为"mass"
ax = sns.scatterplot(x="distance", y="orbital_period",hue="year", size="mass",palette=cmap, sizes=(10, 200),data=planets)

# 设置绘图风格为白色
sns.set(style="white")
# 加载mpg数据集
mpg = sns.load_dataset("mpg")
# 绘制散点图,x轴为horsepower,y轴为mpg,颜色根据origin分类,大小根据weight分类
sns.relplot(x="horsepower", y="mpg", hue="origin", size="weight",sizes=(40, 400), alpha=.5, palette="plasma",height=6, data=mpg)

时序图
Lineplot是Seaborn库中用于绘制折线图的函数,它能够帮助用户可视化数据集中不同变量之间的关系,特别是展示随时间变化的数据趋势。Lineplot函数的基本用法是传入x轴和y轴的数据,以及包含这些数据的数据集(DataFrame或类似结构)。通过指定x和y参数,Lineplot能够绘制出表示这两个变量之间关系的折线图。
Lineplot函数提供了多个参数来调整折线图的外观和行为:
- x, y:分别指定折线图中x轴和y轴的数据。
- data:指定包含x和y数据的数据集,通常是pandas的DataFrame。
- hue:可选参数,用于根据某一列数据对折线进行分组着色,以区分不同的数据系列。
- style:可选参数,用于指定折线的风格,如线型、破折号样式等。
- markers:可选参数,设置为True时会在折线图上显示数据点,便于观察具体的数据值。
- ci:控制置信区间的显示,如果不需要显示置信区间,可以设置为None。
在使用Lineplot时,需要确保传入的数据格式正确,且x轴和y轴的数据长度必须相同。如果数据中包含缺失值(NaN),Lineplot会自动跳过这些值进行绘图。Lineplot的绘图结果会受到Seaborn和matplotlib的样式设置影响,因此可以通过调整这些库的样式设置来改变折线图的外观。
# 加载fmri数据集
fmri = sns.load_dataset("fmri")
# 绘制折线图,x轴为timepoint,y轴为signal,根据region进行颜色区分,根据event进行线条样式区分
sns.lineplot(x="timepoint", y="signal",hue="region", palette="plasma",style="event",data=fmri)

# 创建一个随机数生成器,种子为88
rs = np.random.RandomState(88)
# 生成365个随机数,每个随机数有4个值
values = rs.randn(365, 4).cumsum(axis=0)
# 创建一个日期范围,从2016年1月1日开始,共365天,每天一个日期
dates = pd.date_range("1 1 2016", periods=365, freq="D")
# 创建一个DataFrame,包含生成的随机数和日期
data = pd.DataFrame(values, dates, columns=["A", "B", "C", "D"])
# 对DataFrame进行滚动平均,窗口大小为7
data = data.rolling(7).mean()
# data为数据集,palette为颜色调色板,linewidth为线宽
sns.lineplot(data=data, palette="inferno", linewidth=3)

关系图
relplot是Seaborn库中用于绘制关系图的函数,它是一个高级绘图函数,能够灵活地处理多变量关系,并自动生成具有多个子图的图表。
- x, y:分别指定图表的x轴和y轴数据。
- data:包含绘图所需数据的数据集,通常是pandas的DataFrame。
- hue:用于根据某一列数据对数据进行分组,并在图表中用不同的颜色表示。
- size:控制数据点的大小或线条的粗细,根据数据集中的某列进行映射。
- style:控制数据点的样式或线条的样式,如点型、线型等,同样可以根据数据集中的某列进行映射。
- row, col:用于将数据按照指定的列分割成多个子图,分别绘制在行或列上。
- palette:指定
hue参数分组的颜色映射方案。 - height:每个子图的高度(单位:英寸)。
- aspect:子图的宽高比,默认为1。
- kind:指定绘图的类型,
'scatter'或'line'。
# 加载名为"dots"的数据集
dots = sns.load_dataset("dots")
# 绘制关系图,x轴为"time",y轴为"firing_rate",根据"coherence"进行颜色区分,根据"choice"进行大小区分,根据"align"进行列区分
# "size_order"指定了大小顺序,"height"指定了图形的高度,"aspect"指定了图形的纵横比,"facet_kws"指定了子图的关键字参数
# "kind"指定了图形的类型为线图,"legend"指定了图例的位置为全图,"data"指定了数据集为"dots"
sns.relplot(x="time", y="firing_rate",hue="coherence", size="choice", col="align",size_order=["T1", "T2"],palette="viridis",height=5, aspect=.75, facet_kws=dict(sharex=False),kind="line", legend="full", data=dots)

# 加载名为 "tips" 的数据集
tips = sns.load_dataset("tips")
# 绘制关系图,x 轴为 "total_bill",y 轴为 "tip",根据 "smoker" 进行颜色区分,根据 "day" 进行列区分
# "size_order" 指定了大小顺序,"height" 指定了图形的高度,"aspect" 指定了图形的纵横比,"facet_kws" 指定了子图的关键字参数
# "kind" 指定了图形的类型为线图,"legend" 指定了图例的位置为全图,"data" 指定了数据集为 "tips"
sns.relplot(x="total_bill", y="tip",hue="smoker", col="day",size_order=["T1", "T2"], palette="inferno",height=5, aspect=.75, facet_kws=dict(sharex=False),kind="line", legend="full", data=tips)

相关文章:
【Python】数据可视化之点线图
目录 散点图 气泡图 时序图 关系图 散点图 Scatterplot(散点图)是一种用于展示两个变量之间关系的图表类型。在散点图中,每个观测值(或数据点)都被表示为一个点,其中横轴(…...
jupyter使用pytorch
1、激活环境 以下所有命令都在Anaconda Prompt中操作。 conda activate 环境名称我的环境名称是myenv 如果不知道自己的pytorch配在哪个环境,就用下面方法挨个试。 2、安装jupyter 1、安装 pip install jupyter2、如果已经安装,检查jupyter是否已…...
Electron 安装以及搭建一个工程
安装Node.js 在使用Electron进行开发之前,需要安装 Node.js。 官方建议使用最新的LTS版本。 检查 Node.js 是否正确安装: # 查看node版本 node -v # 查看npm版本 npm -v注意 开发者需要在开发环境安装 Node.js 才能编写 Electron 项目,但是…...
羽毛类型检测系统源码分享
羽毛类型检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…...
Xiaojie雷达之路---doa估计(dbf、capon、music算法)
Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,本篇文章主要是介绍一下雷达信号处理中的dbf、capon、music测角算法,一起来看看吧!!! 前言 本文从信号模型、dbf原理、capon原理、music原理以及代码仿真进行展开描述。 信号模型 阵列接收到…...
十大排序算法总结
完整文档见 排序算法总结——语雀文档 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破…...
大厂AI必备数据结构与算法——链表(三)详细文档
冲冲冲!开干 神马!神马!神马,一向让我们学习起来抓耳挠腮的数据结构课程竟然也有教程?还那么详细??真的假的? 那么好,胡广告诉你是假的,哈哈哈哈哈哈哈哈哈…...
一键自动化配置OpenHarmony编译环境
一、概述 本工程旨在对Ubuntu一键初始化配置环境,解决OpenHarmony的编译依赖问题,基于本脚本配置后配合一键下载OpenHarmony代码便能轻松掌控OpenHarmony的下载、编译。 当前建议使用稳定分支Itopen-2.0-Release,该分支是经过多次测试OK的&…...
不同领域的常见 OOD(Out-of-Distribution)数据集例子
以下是几个来自不同领域的常见 OOD(Out-of-Distribution)数据集例子,这些数据集常用于测试和研究模型在分布变化或分布外数据上的泛化能力: 1. 计算机视觉领域 CIFAR-10 vs. CIFAR-10-C / CIFAR-100-C: 描述:CIFAR-10…...
gRPC协议简介
gRPC 是谷歌开源的一套 RPC 协议框架。主要做两件事情:一是数据编码,二是请求映射。 数据编码 数据编码顾名思义就是在将请求的内存对像转化成可以传输的字节流发给服务端,并将收到的字节流再转化成内存对像。方法有很多,常见的…...
[dp+dfs]砝码称重
题目描述 现有 n n n 个砝码,重量分别为 a 1 , a 2 , … , a n a_1, a_2, \ldots,a_n a1,a2,…,an ,在去掉 m m m 个砝码后,问最多能称量出多少不同的重量(不包括 0 0 0 )。 输入格式 第一行为有两个整数…...
MYSQL-查看表中字段属性语法(三)
查看表中字段全部信息 show full columns from database_name.table_name; show full columns from table_name;示例 mysql> show full columns from world.city; ----------------------------------------------------------------------------------------------------…...
第三讲 part 3:前端处理LINK3D - 代码解析 - 从main出发看总体流程(ROS1改为ROS2)
目录 1. ROS1 ->ROS21.1 包含头文件1.2 全局变量定义1.3 结构体定义1.4 点云容器定义1.5 图像处理相关变量1.6 ROS2发布者和订阅者定义1.7 全局变量,被不断更新1.8 点云处理相关变量1.9 图像描述符1.10 主函数1.10.1. 初始化ROS21.10.2. 创建节点1.10.3. 声明参数1.10.4. 设…...
移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——15.红黑树
1.红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路 径会比其他路径长出俩倍,…...
【C++】Eclipse技巧汇总
Eclipse C/C调试无法输入 在debug C/C程序时,Eclipse自带的窗口,无法读取cin等输入 解决办法: 参考:https://blog.csdn.net/sagjhdj/article/details/123271383 思路是调用外部console: 依次点击Debug>Debug Conf…...
Golang | Leetcode Golang题解之第430题扁平化多级双向链表
题目: 题解: func dfs(node *Node) (last *Node) {cur : nodefor cur ! nil {next : cur.Next// 如果有子节点,那么首先处理子节点if cur.Child ! nil {childLast : dfs(cur.Child)next cur.Next// 将 node 与 child 相连cur.Next cur.Chi…...
Java实现找色和找图功能
某天,张三接到一个任务需求,将一个Excel表格里面的员工信息,录入到员工系统里面,由于数据量非常大,操作起来巨慢。经过一段时间的操作和观察,他发现这种操作,非常有规律,基本就是一些…...
linux脚本工具
目录 shell工具查看Nvidia GPU状态查看某个监听端口是否存在设置局部代理查找关键字相关进程根据日常所需,持续更新 shell工具 减少重复性工作,简化工作流程,提高工作效率 将所编写的shell脚本赋予可执行权限 chmod x <脚本文件> 在…...
MySQL之基础篇
数据库操作 1.查看当前的数据库版本 select version(); 2.显示所有数据库 show databases; 3.创建数据库 create [if not exists] database 数据库名 character set 字符编码集 collate 排序规则; 我们这里提前说一下 被方括号括起来的代码 表示可写可不写 示例…...
13年408计算机考研-计算机网络
第一题: 解析:OSI体系结构 OSI参考模型,由下至上依次是:物理层-数据链路层-网络层-运输层-会话层-表示层-应用层。 A.对话管理显然属于会话层, B.数据格式转换,是表示层要解决的问题,很显然答案…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...
