用R语言绘制三维曲面

news2024/12/24 2:22:57

文章目录

  • graphics::persp
  • lattice::wireframe
  • rgl::plot3d
  • rgl::surface3d
  • scatterplot3d::scatterplot3d

graphics::persp

x <- seq(-10, 10, length.out = 30)
y <- x
f <- function(x, y) { r <- sqrt(x^2+y^2); 10 * sin(r)/r }
z <- outer(x, y, f)
z[is.na(z)] <- 1
op <- par(bg = "white")
persp(x, y, z, theta = 30, phi = 30, expand = 0.5, col = "lightblue")
persp(x, y, z, theta = 30, phi = 30, expand = 0.5, col = "lightblue",
      ltheta = 120, shade = 0.75, ticktype = "detailed",
      xlab = "X", ylab = "Y", zlab = "Sinc( r )"
) -> res
round(res, 3)

在这里插入图片描述
在这里插入图片描述

lattice::wireframe

library(lattice) 
# 构建网格数据
d <- expand.grid(x =10:60, y = 5:40,g=2:3)
# 构建因变量
d$z <-log((d$x^d$g+d$y^2)*d$g)
# 绘制曲面拟合图
wireframe(z~x*y,
          data = d,
          shade=T,  # 曲面颜色渲染
          groups=g, #分组
          drape=T,   # 是否以右侧的色柱区分曲面
          colorkey=T,  # 是否显示色标
          scales=list(arrows=T), #是否显示箭头
          screen=list(z=45,x=-60) #调整图片角度
)

在这里插入图片描述

rgl::plot3d

library(rgl)
d <- expand.grid(x =10:60, y = 5:40,g=2:3)
d$z <-log((d$x^d$g+d$y^2)*d$g)
plot3d(d$x,d$y,d$z,
       type="s",
       size = 0.5,
       col=terrain.colors(length(d$z)))

在这里插入图片描述
plot3d()所绘制的图形是可以用鼠标调整视角的。

plot3d(lm(mpg ~ wt + I(wt^2) + qsec, 
          data = mtcars),
       plane.col =topo.colors(1))

在这里插入图片描述

rgl::surface3d

# 设置x,y,z值
z <- 4 * volcano        
x <- 8 * (1:nrow(z))   
y <- 6 * (1:ncol(z))   
# 设置 颜色
zlim <- range(z)
zlen <- zlim[2] - zlim[1] + 1
colorlut <- topo.colors(zlen) 
col <- colorlut[ z - zlim[1] + 1 ] 
# 绘制曲面图
open3d()
surface3d(x, y, z, color = col, back = "lines")

在这里插入图片描述

scatterplot3d::scatterplot3d

在这里插入图片描述

# 绘制3D 散点图
data(trees)
s3d <- scatterplot3d(trees, 
                     type="p", 
                     highlight.3d=TRUE,
                     angle=60, 
                     #scale.y=0.8, 
                     pch=16, 
                     zlim = c(0,80),
                     col.grid="lightblue",
                     main="scatterplot3d")
                     
# 散点图中添加拟合曲面
tree_lm <- lm(Volume ~ Girth + Height,data = trees)
s3d$plane3d(tree_lm, lty.box = "solid")

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python中如何去除NaN?-一个有10年python编程经验的工程师

Python中如何去除NaN&#xff1f; - 一个有10年python编程经验的工程师 NaN即Not a Number的缩写&#xff0c;表示非数字&#xff0c;也称为缺失值。在数据分析和机器学习中&#xff0c;经常会遇到数据集中存在NaN的情况。 Python提供了许多实用的库和函数&#xff0c;可以轻…

chatgpt赋能python:Python去掉空格和换行——提升网站的SEO排名

Python去掉空格和换行——提升网站的SEO排名 空格和换行是我们日常生活和编程中经常遇到的问题&#xff0c;特别是在网站开发中&#xff0c;它们会大大影响网站的SEO排名。因此&#xff0c;在这篇文章中&#xff0c;我们将介绍如何使用Python去掉空格和换行&#xff0c;以提升…

linux信号量与PV操作知识点总结

信号量 信号量(semaphore) 与已经介绍过的 IPC 结构不同&#xff0c;它是一个计数器&#xff0c;信号量用于实现进程间的与斥与同步&#xff0c;而不是用于存储进程间通信数据。 1、特点 &#xff08;1&#xff09;信号量用于进程间同步&#xff0c;若要在进程间传递数据需要结…

如何在华为OD机试中获得满分?Java实现【优秀学员统计】一文详解!

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: Java华为OD机试真题&#xff08;2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

C++是如何从代码到游戏的

有一个Student类。C怎么创建一个学生类的对象&#xff1f; // 嗯我会&#xff01;有两种方式&#xff1a; Student s; Student *s2 new Student("张三");现在这学生的行为有&#xff1a;吃饭&#xff0c;睡觉&#xff0c;上网课。现在你执行个上网课的行为&#xf…

chatgpt赋能python:Python取数简介

Python取数简介 Python是一款强大的编程语言&#xff0c;可以轻松地处理各种数据类型并进行数据分析。Python的强大功能也使其成为数据科学和机器学习等领域非常受欢迎的编程语言。在这篇文章中&#xff0c;我们将探讨在Python中如何取数。 Python中的取数 Python中有多种方…

C#,码海拾贝(24)——线性方程组求解的复系数方程组的全选主元高斯-约当消去法之C#源代码,《C#数值计算算法编程》源代码升级改进版

using System; namespace Zhou.CSharp.Algorithm { /// <summary> /// 求解线性方程组的类 LEquations /// 原作 周长发 /// 改编 深度混淆 /// </summary> public static partial class LEquations { /// <summary> …

delphi11.3的WebBrower支持Edge

看到此消息后&#xff0c;立即下载了DelphiCE&#xff08;社区版&#xff09; 安装&#xff0c;创建项目&#xff0c;放TWebBrowers&#xff0c;TButton 配置参数为EdgeOnly F9运行&#xff0c;没反应 配置参数为EdgeIfAvailable F9运行&#xff0c;提示浏览器版本过低 全网搜索…

chatgpt赋能python:Python取两者之间的最大值

Python取两者之间的最大值 介绍 Python是一种高级编程语言&#xff0c;广泛应用于计算机科学、人工智能、数据科学、机器学习等不同领域。它的易用性和灵活性使它成为许多开发人员首选的工具。本篇文章将介绍如何使用Python来取两者之间的最大值。 如何取两者之间的最大值 …

URP自定义屏幕后处理

回到目录 大家好&#xff0c;我是阿赵。这次来说一下URP渲染管线里面怎样使用后处理效果&#xff0c;还有怎样去自定义后处理效果。 一、使用URP自带的后处理效果 要使用URP自带的后处理效果&#xff0c;方法很简单&#xff0c;和Unity内置渲染管线的PostProcessing后处理很…

如何在Linux中更改SSH端口?

SSH&#xff08;Secure Shell&#xff09;是一种安全的远程登录协议&#xff0c;它允许您通过网络远程连接到Linux系统并进行管理操作。默认情况下&#xff0c;SSH使用22端口进行通信。然而&#xff0c;为了增强系统的安全性&#xff0c;有时候我们需要更改SSH端口&#xff0c;…

chatgpt赋能python:Python分解——探究Python语言的精髓

Python分解——探究Python语言的精髓 Python作为一种动态解释性语言&#xff0c;逐渐成为数据科学和人工智能领域的“标配”。Python语言的优势不仅在于其简洁而直观的语法&#xff0c;更在于其开源庞大的生态系统。而Python分解&#xff0c;则是将Python语言的优势、拆分并深…

chatgpt赋能python:Python内连接的重要性

Python内连接的重要性 在数据分析和机器学习领域&#xff0c;内连接是一种非常重要的概念&#xff0c;用于筛选和分析不同数据集之间的共同项。Python语言的强大功能和广泛的库可以帮助我们轻松地实现内连接。在本文中&#xff0c;我们将介绍Python内连接的基础知识、实现方式…

chatgpt赋能python:Python分组:组织你的代码,提升可读性和可维护性

Python 分组: 组织你的代码&#xff0c;提升可读性和可维护性 在编写代码时&#xff0c;组织良好的代码结构和架构是非常重要的。对于大规模的项目&#xff0c;特别是多人合作开发的项目来说&#xff0c;代码管理和组织是至关重要的。Python 分组是一种常用的技术&#xff0c;…

css高级技巧

1. 精灵图 index.png 分析图 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title…

chatgpt赋能python:Python单行if语句

Python 单行 if 语句 在 Python 编程中&#xff0c;条件语句 if 是一个非常重要的控制流语句&#xff0c;它的主要作用是根据条件的真假来决定程序的走向。在编写 Python 代码时&#xff0c;经常会遇到需要在某些情况下只执行一行代码的情况。这时&#xff0c;就可以使用 Pyth…

chatgpt赋能python:Python取出列表数字

Python 取出列表数字 如果你是一名 Python 开发者&#xff0c;并且你需要从一个列表中取出数字&#xff0c;那么你来到了对的地方。 介绍 Python 是一门很流行的编程语言&#xff0c;它有很多内置函数和库&#xff0c;可以帮助你快速地完成各种任务。在 Python 中&#xff0…

使用yolov5实现图片分类

文章目录 开始之前下载依赖数据集下载新建配置文件执行训练模型选择训练完成测试模型进行预测自定义模型下载数据集下载地址分享问题 开始之前 你应当先克隆这个仓库 git clone https://github.com/ultralytics/yolov5 # clone下载完毕后&#xff0c;进入克隆的仓库目录 cd …

Linux系统静态IP配置(CentOS)

刚刚装好的Linux系统&#xff08;Ubuntu版本&#xff09;通过ifconfig&#xff08;如果是CentOS版本需要使用ipaddr&#xff09;之后没有发现IP地址 首先在Linux终端通过su root指令进入root用户下获得管理员权限&#xff0c;之后进入cd /etc/sysconfig/network-scripts目录中 …

Linux命令(23)之cat

Linux命令之cat 1.cat介绍 linux命令cat用于把文件内容显示在标准输出设备&#xff08;即&#xff1a;显示器&#xff09;上&#xff0c;也可以(单个/几个)文件内容追加别的文件当中去。 2.cat用法 cat [参数] [文件名称] cat命令常用参数 参数说明-b对所有非空输出进行编号…