【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或类似结构)。通过指定xy参数,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)

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/431412.html

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

相关文章

php发送邮箱教程:如何实现邮件发送功能?

php发送邮箱性能优化策略?怎么使用PHPMail发送邮箱? 无论是用户注册验证、密码重置,还是系统通知,邮件发送都是不可或缺的一部分。AokSend将详细介绍如何使用PHP实现邮件发送功能,帮助开发者快速掌握这一技能。 php发…

CSS 实现文本溢出省略号显示,含单行与多行文本溢出

🚀 个人简介:某大型国企资深软件研发工程师,信息系统项目管理师、CSDN优质创作者、阿里云专家博主,华为云云享专家,分享前端后端相关技术与工作常见问题~ 💟 作 者:码喽的自我修养&#x1f9…

【干货来了】PLC多种通讯方式汇总学习~

PLC的通讯功能是其连接设备、控制系统和外部系统的重要组成部分。PLC支持多种通讯方式,本文将讲述PLC常见的通讯方式及其优缺点,别再傻傻分不清楚~ 一.点对点通讯(P2P) 点对点通讯是一种简单的通讯方式,它直接将两个…

【Docker】Docker快速入门

Docker学习笔记 一、Docker概述 为什么会出现Docker? 安卓开发流程:apk(java开发的)发布到应用商店,用户安装apk即可使用。 后端开发流程: jar(java开发的)带上环境发布到Docker仓库,用户从Docker仓库拉取镜像并部署。 总结…

OpenAI o1团队突破性论文:『过程推理』中数学推理能力大幅提升,从正确中学习的新方法

原创 超 近年来,大型语言模型(LLMs)在复杂的多步推理任务中取得了令人瞩目的进展。这些模型能够生成逐步的思维链,解决从小学数学到高等微积分的各种问题。然而,即使是最先进的模型也常常陷入逻辑陷阱,产生看似合理但实际错误的推…

统信服务器操作系统【刻录镜像制作U盘启动盘的工具】

统信服务器操作系统各版本上刻录镜像制作U盘启动盘的工具方案 文章目录 应用场景一、问题现象二、问题分析解决方案应用场景 硬件/整机信息:全平台 CPU架构:全架构 OS版本信息:服务器a版,e版,d版(其中d版遇到的刻录类问题较少) 软件信息:dd工具、Fedora Media Writer工…

【Linux实践】实验三:LINUX系统的文件操作命令

【Linux实践】实验三:LINUX系统的文件操作命令 实验目的实验内容实验步骤及结果1. 切换和查看目录2. 显示目录下的文件3. 创建和删除目录① mkdir② rm③ rmdir 4. 输出和重定向① 输出② 重定向 > 和 >> 5. 查看文件内容① cat② head 6. 权限7. 复制8. 排…

Gnu Radio抓取WiFi信号,流程图中模块功能

模块流程如图所示: GNURadio中抓取WiFi信号的流程图中各个模块的功能: UHD: USRP Source: 使用此模块配置USRP硬件进行信号采集。设置频率、增益、采样率等参数。Complex to Mag^2: 将复数IQ数据转换为幅度的平方。Delay&#xf…

【计网】从零开始掌握序列化 --- 实现网络计算器项目

​​​请各位保持头脑清醒, ​​​读些好书,做点有用的事, ​​​快快乐乐地生活。 ​​​ --- 斯蒂芬金 《肖申克的救赎》--- 从零开始掌握序列化 1 知识回顾2 服务器框架3 客户端框架4 运行测试 1 知识回顾 前面两篇文章学习中基础知识…

微服务学习笔记之Docker

目录 认识Docker 安装Docker 安装yum工具 配置Docker的yum源 更新yum,建立缓存 安装Docker 启动并校验 配置镜像加速 Docker常见命令 命令 演示 给命令起别名 Docker数据卷 认识数据卷 数据卷常见命令 nginx的html目录挂载演示 数据卷挂载本地目录或…

Redis: 特点,优势,与其他产品的区别以及高并发原理

入门Redis概述 1 )选择Redis是因为其高性能 因为 Redis 它数据存储的机制是存在内存中的,减少了传统关系数据库的磁盘IO它是单线程的保证了原子性,它还提供了事务,锁等相关的机制 2 )Redis 环境安装配置 linux 或 d…

企业网盘能作为FTP替代产品吗?

在数字化办公日益普及的今天,企业对于文件存储、传输和协作的需求不断增长。传统的FTP协议虽然在文件传输领域有着不可替代的地位,但其在用户体验、安全性、协作功能等方面逐渐显得力不从心。企业网盘作为一种新兴的数据管理解决方案,正逐渐成…

LeetCode234. 回文链表(2024秋季每日一题 26)

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:head [1,2,2,1] 输出:true 示例 2: 输入:hea…

建立分支提交代码

git分支 git branch 产看当前分支 git branch -a 查看所有分支 git checkout 分支名 切换分支 git checkout -b 分支名 建立分支(仅仅是在本地建立了,并没有关联线上) git push --set-upstream origin 分支名 把本地分支推到先线上 gti add …

【计算机视觉】YoloV8-训练与测试教程

✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 💫 欢迎来到我的学习笔记! 制作数据集 Labelme 数据集 数据集选用自己标注的,可参考以下&#xff1a…

Paper 0 | Visual Instruction Tuning

使用机器生成的指令跟踪数据对大型语言模型 (LLM) 进行指令调整已被证明可以提高新任务的零样本能力,但这个想法在多模态领域的探索较少。我们首次尝试使用纯语言 GPT-4 生成多模态语言图像指令跟踪数据。通过对此类生成的数据进行指令调整,我们引入了 L…

多智能体笔记本专家系统:集成CrewAI、Ollama和自定义Text-to-SQL工具

在这个项目中,我们的目标是创建一个由多智能体架构和本地大语言模型(LLM)驱动的个人笔记本电脑专家系统。该系统将使用一个SQL数据库,包含有关笔记本电脑的全面信息,包括价格、重量和规格。用户可以根据自己的特定需求…

unix中如何查询和修改进程的资源限制

一、前言 一个进程在运行时,会用到各种资源,比如cpu的使用时间、内存空间、文件等等。那么,一个进程能够占用多少资源呢?cpu使用的时间有多长?进程空间有多大?能够创建多少个文件?这个就是本文…

2024.9.24 数据分析

资料 111个Python数据分析实战项目,代码已跑通,数据可下载_python数据分析项目案例-CSDN博客 【数据挖掘六大项目实战】敢说这是全B站讲的最详细最通俗易懂的数据挖掘教程!整整60集!学不会来找我!-数据挖掘、数据挖掘…

校园自助打印系统小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,店长管理,打印店管理,打印服务管理,服务类型管理,预约打印管理,系统管理 微信端账号功能包括:系统首页&…