r - 如何在 R 中绘制两个变量的函数的 3D 图
问题描述
我的任务是绘制两个变量 f(x,y) 的函数,其中 m 是成熟度,从 1 到 15。这是我的代码:
f<-function(x,y)((x -y * ((1 - exp(-m / 4)) / (m / 4)) - 0.035 * ((1 - exp(-m / 4
)) / (m / 4) - exp(-m / 4))))
z <- outer(x, y, f)
persp(x, y, z)
open3d()
plot3d(f,xlab = "x", ylab = "y", zlab = "m", ylim = c(-1, 1), xlim = c(-1, 1), zlim = c(1, 15))
谁能告诉我,我在哪里做错了?
解决方案
您不能将函数作为 的参数传递plot3D
。而是通过您的变量x
和。这是一个简单的可重现示例y
f(x,y)
set.seed(5)
x <- runif(100)
m <- 4
f<-function(x,y)((x -y * ((1 - exp(-m / 4)) / (m / 4)) - 0.035 * ((1 - exp(-m / 4
)) / (m / 4) - exp(-m / 4))))
z <- f(x,y)
library(rgl)
open3d()
plot3d(x,y,z,xlab = "x", ylab = "y", zlab = "m")
哪个给你
如果您是另一个simboltype
来绘制数据,请查看. 默认情况下设置为表示“点”,但有用于“线”、“段”、球体 ecc 的方法(参见 参考资料):type
plot3D
"p"
?plot3D
type
对于默认方法,单个字符指示要绘制的项目的类型。支持的类型有:“p”表示点,“s”表示球体,“l”表示线,“h”表示从 z = 0 开始的线段,“n”表示无。对于 mesh3d 方法,“阴影”、“线”或“点”之一。使用部分匹配。
推荐阅读
- c# - 解析反序列化的 Json 数据失败 - c#
- android - 错误:错误:找不到与给定名称匹配的资源(在“标签”处,值为“@string/title_gizmos”)
- typescript - 为团队成员编译不同的打字稿
- unix - 用于屏蔽信用卡最多 12 位数字的 Sed 命令
- java - 使用 Swig 在 C 和 java 之间传递数组
- node.js - 无法更改 package.json 中的目录
- django - 使用超过 4000 万行的 Django 和 PostgreSQL 进行慢速查询
- reactjs - 如何在 localhost 中将 Segment 的 Visual Tagger 与 React 应用程序一起使用
- c# - 绑定 BorderHexColor
- c++ - 不打开连接就可以知道 FTDI 设备端口号吗?