首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Beaker笔记本中的r-散点图3d绘制

Beaker笔记本中的r-散点图3d绘制
EN

Stack Overflow用户
提问于 2016-05-09 18:19:30
回答 2查看 72关注 0票数 2

我正在尝试将R的scatterplot3d包呈现在Beaker笔记本中,但无法让它正常工作。我可以在没有错误的情况下运行代码,但是没有显示图形。将scatterplot3d输出设置为变量并打印变量:

投入:

代码语言:javascript
运行
复制
data(iris)  
test <- scatterplot3d(iris[,1:3])
test

产出:

代码语言:javascript
运行
复制
$xyz.convert
function (x, y = NULL, z = NULL) 
{
xyz <- xyz.coords(x, y, z)
if (angle > 2) {
    temp <- xyz$x
    xyz$x <- xyz$y
    xyz$y <- temp
}
y <- (xyz$y - y.add)/y.scal
return(list(x = xyz$x/x.scal + yx.f * y, y = xyz$z/z.scal + 
    yz.f * y))
}
<environment: 0x00000000048f8830>

$points3d
function (x, y = NULL, z = NULL, type = "p", ...) 
{
xyz <- xyz.coords(x, y, z)
if (angle > 2) {
    temp <- xyz$x
    xyz$x <- xyz$y
    xyz$y <- temp
}
y2 <- (xyz$y - y.add)/y.scal
x <- xyz$x/x.scal + yx.f * y2
y <- xyz$z/z.scal + yz.f * y2
mem.par <- par(mar = mar, usr = usr)
on.exit(par(mem.par))
if (type == "h") {
    y2 <- z.min + yz.f * y2
    segments(x, y, x, y2, ...)
    points(x, y, type = "p", ...)
}
else points(x, y, type = type, ...)
}
<environment: 0x00000000048f8830>

$plane3d
function (Intercept, x.coef = NULL, y.coef = NULL, lty = "dashed", 
lty.box = NULL, ...) 
{
if (!is.atomic(Intercept) && !is.null(coef(Intercept))) 
    Intercept <- coef(Intercept)
if (is.null(lty.box)) 
    lty.box <- lty
if (is.null(x.coef) && length(Intercept) == 3) {
    x.coef <- Intercept[if (angle > 2) 
        3
    else 2]
    y.coef <- Intercept[if (angle > 2) 
        2
    else 3]
    Intercept <- Intercept[1]
}
mem.par <- par(mar = mar, usr = usr)
on.exit(par(mem.par))
x <- x.min:x.max
ltya <- c(lty.box, rep(lty, length(x) - 2), lty.box)
x.coef <- x.coef * x.scal
z1 <- (Intercept + x * x.coef + y.add * y.coef)/z.scal
z2 <- (Intercept + x * x.coef + (y.max * y.scal + y.add) * 
    y.coef)/z.scal
segments(x, z1, x + y.max * yx.f, z2 + yz.f * y.max, lty = ltya, 
    ...)
y <- 0:y.max
ltya <- c(lty.box, rep(lty, length(y) - 2), lty.box)
y.coef <- (y * y.scal + y.add) * y.coef
z1 <- (Intercept + x.min * x.coef + y.coef)/z.scal
z2 <- (Intercept + x.max * x.coef + y.coef)/z.scal
segments(x.min + y * yx.f, z1 + y * yz.f, x.max + y * yx.f, 
    z2 + y * yz.f, lty = ltya, ...)
}
<environment: 0x00000000048f8830>

$box3d
function (...) 
{
mem.par <- par(mar = mar, usr = usr)
on.exit(par(mem.par))
lines(c(x.min, x.max), c(z.max, z.max), ...)
lines(c(0, y.max * yx.f) + x.max, c(0, y.max * yz.f) + z.max, 
    ...)
lines(c(0, y.max * yx.f) + x.min, c(0, y.max * yz.f) + z.max, 
    ...)
lines(c(x.max, x.max), c(z.min, z.max), ...)
lines(c(x.min, x.min), c(z.min, z.max), ...)
lines(c(x.min, x.max), c(z.min, z.min), ...)
}
<environment: 0x00000000048f8830>

我不确定这个功能是否可以用Beaker笔记本,但我想我在这里检查是否有人有任何提示。

谢谢,

-pH+

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-09 19:53:11

弄明白了。作为代码的一部分,我通过以下方法更改了R的工作目录,以便更容易地从我的项目文件夹中提取数据文件:

代码语言:javascript
运行
复制
setwd("C:/Users/macle/Desktop/UPC Masters/Semester 1/CN/MAI-CN/Final Project")

似乎在某种程度上,这就破坏了scatterplot3d在Beaker笔记本中显示输出的能力。

相反,我只是使用绝对路径来加载我需要的文件,这为我解决了这个问题。

@spot,谢谢您为我指明了正确的方向,并确认问题在我的头上,而不是Beaker的限制。

Ps。我喜欢和Beaker一起工作,谢谢你开发了这么棒的工具。

票数 1
EN

Stack Overflow用户

发布于 2016-05-09 19:08:33

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37122787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档