当前位置: 首页 > news >正文

R语言绘制三维散点图

之前我们绘制的属于二维散点图,具有两个维度通常是 x 轴和 y 轴)上展示数据点的分布。只能呈现两个变量之间的关系。而三维散点图则具有三个维度(x 轴、y 轴和 z 轴)上展示数据点的分布。可以同时呈现三个变量之间的关系,提供了更丰富的信息和更全面的视角。
从视觉效果来讲二维散点图较为平面和简洁,数据点的分布相对容易观察,但对于复杂的数据关系可能不够直观。三维散点图则更具有立体感,能够更生动地展示数据的分布情况。但由于增加了一个维度,可能会使数据点的分布显得更加复杂,需要一定的时间来适应和理解。
从数据分析能力角度来讲二维散点图适合分析两个变量之间的线性或非线性关系,如相关性、趋势等。可以通过添加趋势线、拟合曲线等方式进一步分析数据。三维散点图除了可以分析三个变量之间的关系外,还可以通过旋转、缩放等操作从不同角度观察数据,发现潜在的模式和异常值。但对于大规模数据集,三维散点图可能会显得拥挤,影响数据分析的效果。
从应用场景来讲二维散点图广泛应用于各种数据分析场景,尤其是当变量数量较少且关系相对简单时。例如,在经济学中分析收入和消费之间的关系,在生物学中分析两种生物指标之间的关系等。三维散点图则适用于需要同时考虑三个变量的情况,如物理学中的空间位置和时间关系、工程学中的多参数优化等。对于一些复杂的数据结构和高维数据的初步探索,三维散点图也可以提供一定的帮助。

0x01 使用scatterplot3d包

一、安装与加载R包

#安装scatterplot3d包
install.packages("scatterplot3d")
#加载scatterplot3d包
library(scatterplot3d)

二、准备数据

#生成三个包含50个随机数的向量x、y 和 z
x <- rnorm(50)
y <- rnorm(50)
z <- rnorm(50)

三、函数用法及参数说明

scatterplot3d(x, y, z,...)

1.x:这是必选参数,用于指定散点图中数据点在 x 轴上的坐标。可以是一个数值向量,表示数据点在 x 轴方向的位置。
2.y:也是必选参数(如果x是一个包含多个列的矩阵或数据框等复合数据结构时可省略),用于指定散点图中数据点在 y 轴上的坐标。与x类似,是一个数值向量。
3.z:必选参数,指定散点图中数据点在 z 轴上的坐标,同样为数值向量。
4.color:用于指定数据点的颜色。可以是一个颜色向量,每个元素对应一个数据点的颜色;也可以是一个颜色名称字符串,所有数据点将使用该颜色。默认值为par("col"),即使用当前绘图参数中的颜色设置。
5.col.axis:用于指定坐标轴的颜色。例如,如果设置col.axis = "red",那么坐标轴将显示为红色。默认情况下,如果不指定该参数,坐标轴的颜色通常由当前的绘图设置决定。
6.col.grid:用于指定三维散点图中网格线的颜色。例如,如果设置col.grid = "blue",那么网格线将显示为蓝色。默认情况下,如果不指定该参数,网格线的颜色通常由当前的绘图设置决定。
7.pch:指定数据点的绘制符号。可以是一个整数值,选择预定义的绘图符号;也可以是一个字符,表示自定义的绘图符号。默认值为par("pch"),即使用当前绘图参数中的绘图符号设置。
8.main:设置图形的主标题,为字符串类型。如果不指定,将没有主标题。
9.sub:副标题,同样为字符串类型。用于在图形下方添加一个副标题。
10.xlimylimzlim:分别用于设置 x 轴、y 轴、z 轴的取值范围。可以是一个包含两个元素的数值向量,分别表示轴的最小值和最大值。如果不指定,函数将根据数据自动确定轴的范围。
11.xlabylabzlab:分别为 x 轴、y 轴、z 轴的标签,用于描述轴所代表的变量含义。都是字符串类型。
12.scale.y:y 轴相对于 x 轴和 z 轴的缩放比例。默认值为 1,表示 y 轴的缩放比例与 x 轴和 z 轴相同。可以根据需要调整该值来改变 y 轴的显示比例。
13.angle:x 轴和 y 轴之间的角度。该角度会影响图形的视角,注意结果可能会受到缩放比例的影响。
14.axis:逻辑值,用于指定是否绘制坐标轴。如果为TRUE,将绘制坐标轴;如果为FALSE,则不绘制坐标轴。默认值为TRUE
15.tick.marks:逻辑值,指定是否在坐标轴上绘制刻度线。仅在axis = TRUE时有效。默认值为TRUE
16.label.tick.marks:逻辑值,指定是否在刻度线上添加标签。仅在axis = TRUEtick.marks = TRUE时有效。默认值为TRUE
17.x.ticklabsy.ticklabsz.ticklabs:用于指定 x 轴、y 轴、z 轴刻度线的标签向量。可以自定义刻度线的标签,而不是使用默认的数值标签。
18.y.margin.add:在 y 轴的刻度标签和轴标签之间添加额外的空间。这是一个数值值,用于增加两者之间的间距。
19.y.axis.offset:指定 y 轴刻度标签与轴的偏移量。默认值为 1,通过调整该值可以改变刻度标签的位置。
20.grid:逻辑值,用于指定是否在图形中绘制网格线。如果为TRUE,将绘制网格线;如果为FALSE,则不绘制。默认值为TRUE
21.box:逻辑值,用于指定是否在图形周围绘制边框。如果为TRUE,将绘制边框;如果为FALSE,则不绘制。默认值为TRUE
22.highlight.3d:逻辑值,用于指定是否对数据点进行突出显示。如果为TRUE,数据点的颜色将根据其在三维空间中的位置而变化,以增强立体感;如果为FALSE,则使用指定的颜色绘制数据点。默认值为FALSE
23.mar:一个数值向量,用于指定图形的边界大小,顺序为c(bottom, left, top, right)。可以根据需要调整边界大小,以适应图形的显示。
24.bg:指定图形的背景颜色。可以是一个颜色名称字符串,也可以是一个颜色值。默认值为par("bg"),即使用当前绘图参数中的背景颜色设置。
25.type:用于指定散点图中点的绘制类型。“p“”点;“h”垂线;“s”三维曲面;“l”线。

四、绘制基本的三维散点图

scatterplot3d(x,y,z)

五、美化和调整

scatterplot3d(x,y,z,color = "darkred",pch = 2,col.axis = "darkgrey",col.grid = "lightgrey",main = "三维散点图",scale.y = 2,angle = 30,type = "h")

六、绘制分组三维散点图

# 从 1、2、3 中随机抽取 50 个数字(可重复),并转换为因子类型,作为分类变量 fac
fac <- as.factor(sample(1:3, 50, replace = TRUE))# 将 x、y、z 和 fac 组合成一个数据框 data
data <- data.frame(x,y,z,fac)# 使用 scatterplot3d 函数绘制三维散点图
# data$x、data$y、data$z 分别作为 x、y、z 轴的数据
# color = data$fac 表示根据 fac 这个分类变量来设置数据点的颜色
# pch = 16 指定数据点的绘制符号为实心圆
scatterplot3d(data$x,data$y,data$z,color = data$fac,pch = 16)

0x02 使用rgl包

如果需要绘制可旋转的三维散点图,可使用rgl包中的plot3d()函数。

一、安装与加载R包

#安装rgl包
install.packages("rgl")
#加载rgl包
library(rgl)

二、准备数据

x <- runif(100)
y <- runif(100)
z <- runif(100)

三、绘制可旋转的三维散点图

plot3d(x,y,z, col = "blue", size = 5)

相关文章:

R语言绘制三维散点图

之前我们绘制的属于二维散点图&#xff0c;具有两个维度通常是 x 轴和 y 轴&#xff09;上展示数据点的分布。只能呈现两个变量之间的关系。而三维散点图则具有三个维度&#xff08;x 轴、y 轴和 z 轴&#xff09;上展示数据点的分布。可以同时呈现三个变量之间的关系&#xff…...

2014年国赛高教杯数学建模A题嫦娥三号软着陆轨道设计与控制策略解题全过程文档及程序

2014年国赛高教杯数学建模 A题 嫦娥三号软着陆轨道设计与控制策略 嫦娥三号于2013年12月2日1时30分成功发射&#xff0c;12月6日抵达月球轨道。嫦娥三号在着陆准备轨道上的运行质量为2.4t&#xff0c;其安装在下部的主减速发动机能够产生1500N到7500N的可调节推力&#xff0c;…...

QD1-P25 CSS 背景

本节学习&#xff1a;CSS 背景属性 本节视频 https://www.bilibili.com/video/BV1n64y1U7oj?p25 背景颜色 ​​ 背景图片 不重复 ​​ 横向重复 ​​ 纵向重复 ​​ 双向重复 ​​ 背景图片大小 400px ​​ 600px ​​ 原图大小 ​​ 显示器宽度不够时&…...

《Linux运维总结:基于ARM64+X86_64架构CPU使用docker-compose一键离线部署mongodb 7.0.14容器版分片集群》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;《Linux运维篇&#xff1a;Linux系统运维指南》 一、部署背景 由于业务系统的特殊性&#xff0c;我们需要面向不通的客户安装我们的业务系统&…...

Java利用ChromeDriver插件网页截图(Wondows版+Linux版)

chromedriver是谷歌浏览器驱动,用来模拟谷歌运行操作的一个工具&#xff0c;此处主要讲解Java后端利用此插件进行网页截图&#xff0c;并且适配Linux部署。 环境准备 Wondows服务器或电脑 本机需安装Chrome谷歌浏览器&#xff0c;根据本机浏览器版本&#xff0c;下载对应的chr…...

无人机之交互系统篇

一、系统构成 无人机交互系统通常由多个子系统组成&#xff0c;包括但不限于&#xff1a; 多模式人机交互装置&#xff1a;这是人机交互系统的基础层&#xff0c;通常包括计算机、局域网、传感器等设备&#xff0c;用于实现操作员与无人机之间的数据交互和指令传递。例如&…...

MarsCode--找出数字比例超过n/2的【简单】

问题描述 给定一个长度为n的整型数组&#xff0c;已知其中一个数字的出现次数超过数组长度的一半&#xff0c;找出这个元素 输入格式 一个长度为n的数组&#xff0c;其中某个元素的出现次数大于n/2 输出格式 一个整数 输入样例 [1,3,8,2,3,1,3,3,3] 输出样例 3 数据范…...

Python网络爬虫快速入门指南

Python网络爬虫快速入门指南 网络爬虫&#xff0c;也称为网络蜘蛛&#xff0c;是一种自动访问互联网并提取信息的程序。Python因其简洁明了的语法和丰富的库支持&#xff0c;成为开发网络爬虫的理想选择。在这篇博客中&#xff0c;我们将探讨如何快速入门Python网络爬虫技术&a…...

C86 架构一键离线安装 docker 和 docker-compose 实战指南

C86 架构一键离线安装 docker 和 docker-compose 实战指南 文章目录 C86 架构一键离线安装 docker 和 docker-compose 实战指南一 磁盘挂载二 docker 部署1 上传安装包2 解压安装包3 安装包 docker 三 验证安装四 清除安装包五 安装包下载地址 本文提供了在 C86 架构环境下&…...

【LwIP源码学习2】调试输出相关宏

前言 本文对lwip中debug.h文件里的调试相关宏进行分析。 正文 debug.h中有3个重要的调试相关宏&#xff1a; LWIP_ASSERT(message, assertion) LWIP_ERROR(message, expression, handler) LWIP_DEBUGF(debug, message) 断言 LWIP_ASSERT(message, assertion) 源代码为&…...

Python 列表专题:删除元素

Python 是一种强大的编程语言,广泛应用于数据分析、Web 开发、人工智能等多个领域。而列表(List)作为 Python 中最基本的数据结构之一,扮演着非常重要的角色。列表不仅可以存储各种类型的数据,还提供了丰富的操作接口,方便我们进行数据的增删改查。本篇博文将深入探讨 Py…...

Spring Boot 快速入门与核心原理详解

引言 在上一篇文章中&#xff0c;我们详细探讨了 Spring 框架中的事件监听与发布机制。本文将转向 Spring Boot&#xff0c;介绍如何快速入门 Spring Boot&#xff0c;并深入探讨其核心原理。Spring Boot 是由 Pivotal 团队提供的全新框架&#xff0c;旨在简化 Spring 应用的初…...

UniApp 与微信小程序详细对比

UniApp 与微信小程序详细对比 1. 开发环境 微信小程序&#xff1a; 主要使用微信开发者工具提供模拟器、调试工具和性能监控只能开发微信小程序 UniApp&#xff1a; 主要使用 HBuilderX&#xff0c;但也支持 VS Code 等其他编辑器HBuilderX 提供可视化界面、代码提示、调试工…...

【用大模型提示工程处理NLP任务】

Batch API Prompt 工程 任务一&#xff1a;文本分类 任务二&#xff1a;情感分析 任务三&#xff1a;文档处理 任务四&#xff1a;信息抽取 任务五&#xff1a;机器翻译 任务六&#xff1a;生成任务 任务七&#xff1a;文本纠错 Batch API Prompt 工程 Batch API 适用于…...

适配器模式、代理模式(C++)

适配器模式&#xff1a; 定义&#xff1a;适配器模式是一种结构型设计模式&#xff0c;它允许接口不兼容的类一起工作。它通过将一个类的接口转换成客户端期望的另一个接口&#xff0c;使原本由于接口不兼容而不能一起工作的那些类可以一起工作。 代理模式&#xff1a; 定义&a…...

unity 2d 近战攻击判定的三种方式以及精确获取碰撞点

精确获取碰撞点 核心是获取武器碰撞盒最顶点&#xff0c;然后获取敌人碰撞盒距离该点最近的点 /// <summary>/// 获取获取武器前端位置 碰撞盒最左或最右顶点/// </summary>/// <param name"collider"></param>/// <param name"…...

矩形函数的傅里叶变换——从一维到二维,从连续到离散

一维连续矩形函数的傅里叶变换 二维连续矩形函数的傅里叶变换 禹晶、肖创柏、廖庆敏《数字图像处理&#xff08;面向新工科的电工电子信息基础课程系列教材&#xff09;》P109 2D DFT 禹晶、肖创柏、廖庆敏《数字图像处理&#xff08;面向新工科的电工电子信息基础课程系…...

潜水打捞系统助力,破解汽车打捞难题

随着人类活动的不断扩展&#xff0c;汽车落水事故频发&#xff0c;成为救援工作中的一大难题。汽车因其重量和结构特性&#xff0c;一旦沉入水体&#xff0c;打捞工作将面临巨大挑战。传统的打捞方法往往效率低下&#xff0c;且在操作过程中可能会对汽车造成进一步的损害&#…...

【深度学习】经典的深度学习模型-01 开山之作:CNN卷积神经网络LeNet-5

【深度学习】经典的深度学习模型-01 开山之作&#xff1a;CNN卷积神经网络LeNet-5 Note: 草稿状态&#xff0c;持续更新中&#xff0c;如果有感兴趣&#xff0c;欢迎关注。。。 0. 论文信息 article{lecun1998gradient, title{Gradient-based learning applied to document r…...

LeetCode 每日一题 2024/10/7-2024/10/13

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 10/7 871. 最低加油次数10/8 1436. 旅行终点站10/9 3171. 找到按位或最接近 K 的子数组10/10 3162. 优质数对的总数 I10/11 3164. 优质数对的总数 II10/12 3158. 求出出现两…...

Fish Speech 1.5在医疗健康领域的语音辅助应用

Fish Speech 1.5在医疗健康领域的语音辅助应用 1. 引言 在医疗健康领域&#xff0c;清晰准确的语音交流至关重要。医生需要向患者解释病情&#xff0c;护士要按时提醒用药&#xff0c;患者可能因为视力问题无法阅读病历资料。传统的文字信息在这些场景中往往显得不够直观和便…...

用过才敢说!盘点2026年备受喜爱的的AI论文平台

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文平台&#xff0c;覆盖选题构思、文献整理、内容生成、降重润色等核心场景&#xff0c;帮你高效搞定论文&#xff0c;告别熬夜赶稿&#xff01; 一、全流程王者&#xff1a;一站式搞定论文全链路…...

TNTSearch 实战案例:构建电商产品搜索系统的完整流程

TNTSearch 实战案例&#xff1a;构建电商产品搜索系统的完整流程 【免费下载链接】tntsearch A fully featured full text search engine written in PHP 项目地址: https://gitcode.com/gh_mirrors/tn/tntsearch TNTSearch 是一个功能强大的 PHP 全文搜索引擎&#xff…...

【由浅入深探究langchain】第十七集-构建你的首个 RAG 知识库助手(从文档索引到检索增强生成)

前言在大语言模型&#xff08;LLM&#xff09;爆火的今天&#xff0c;我们常常会被 GPT 或 Claude 展现出的博学所惊叹。然而&#xff0c;当你试着问它“我公司昨晚新发布的财务报表数据是多少&#xff1f;”或者“我上周在笔记里写的某个私人计划是什么&#xff1f;”时&#…...

突破Twitter数据限制:Rettiwt-API开源工具零成本数据获取指南

突破Twitter数据限制&#xff1a;Rettiwt-API开源工具零成本数据获取指南 【免费下载链接】Rettiwt-API An API for fetching data from Twitter for free! 项目地址: https://gitcode.com/gh_mirrors/re/Rettiwt-API 在社交媒体数据驱动决策的时代&#xff0c;Twitter作…...

VINS-Mono跑EUROC数据集后,如何用evo工具包进行轨迹精度评估与可视化(附完整命令)

VINS-Mono轨迹精度评估实战&#xff1a;从EUROC数据集到evo工具包全流程解析 在完成VINS-Mono算法在EUROC数据集上的运行后&#xff0c;如何科学评估其轨迹精度成为算法优化和论文撰写的关键环节。本文将深入讲解使用evo工具包进行定量分析的完整流程&#xff0c;涵盖指标计算、…...

从ResNet到mHC:DeepSeek重构残差连接,额外开销仅6.7%,附复现代码

2015年&#xff0c;由微软亚洲研究院的何恺明团队提出ResNet&#xff0c;ResNet引入残差连接的概念&#xff0c;用以解决深层神经网络训练中的梯度消失/爆炸和网络退化问题&#xff0c;使得训练极深的网络成为可能。 &#xfffd;&#xfffd;1&#xfffd;&#xfffd;&#x…...

【Python 教程】如何将 JSON 数据转换为 Excel 工作表

pagehelper整合 引入依赖com.github.pagehelperpagehelper-spring-boot-starter2.1.0compile编写代码 GetMapping("/list/{pageNo}") public PageInfo findAll(PathVariable int pageNo) {// 设置当前页码和每页显示的条数PageHelper.startPage(pageNo, 10);// 查询数…...

3000份绝密文件外泄!Anthropic“核弹级”AI Mythos一夜封神,AGI防盗门被敲碎

Anthropic“防盗门”被敲了三下&#xff0c;声音来自自家后院。 一次配置失误&#xff0c;近3000份内部文档裸奔&#xff0c;把尚未出生的Mythos&#xff08;对外昵称Capybara&#xff09;推到了聚光灯下。 它有多强&#xff1f;一句话&#xff1a;在软件编程、学术推理、网络安…...

Sora.FM零基础部署指南:3步上手AI视频生成工具的Linux实践方案

Sora.FM零基础部署指南&#xff1a;3步上手AI视频生成工具的Linux实践方案 【免费下载链接】sorafm 项目地址: https://gitcode.com/GitHub_Trending/so/sorafm Sora.FM是一款基于Sora AI技术的开源视频生成平台&#xff0c;支持通过文本描述创建高质量AI视频。本指南专…...