2016-05-09 4 views
2

Я пытаюсь получить пакет splitplot3d R для рендеринга в Notebook Notebook, но не может заставить его работать. Я могу запустить код без ошибок, но графический объект не отображается. Установка выходного сигнала scatterplot3d к переменной и печати переменных получает:R-scatterplot3d рендеринг в Beaker Notebook

вход:

data(iris) 
test <- scatterplot3d(iris[,1:3]) 
test 

выход:

$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> 

Я не уверен, если эта функция возможна с МЕНЗУРКУ ноутбуков, но подумал, что я проверю здесь, если у кого есть какие-то советы.

Спасибо,
-PH +

ответ

1

Фигурного его. Как часть моего кода, я изменял рабочий каталог R легче тянуть в файлы данных из папки в папку проекта с помощью:

setwd("C:/Users/macle/Desktop/UPC Masters/Semester 1/CN/MAI-CN/Final Project") 

Оказывается, что где-то по пути, это нарушает способность scatterplot3d, чтобы отобразить вывода в записной книжке Beaker.

Я вместо этого просто использовал абсолютные пути для загрузки файлов, которые мне нужны, что решило проблему для меня.

@spot Спасибо, что указали мне в правильном направлении и подтвердили, что проблема была на моем конце, а не ограничение Beaker.

Ps. Мне нравится работать с Beaker, спасибо за разработку такого фантастического инструмента.

+0

спасибо, рад это услышать. недостаток контроля над cwd является проблемой, где-то в трекер проблема, извините об этом. – spot

Смежные вопросы