Ошибка экспорта rgl.snapshot и rgl.postscript

В настоящее время я использую пакет rgl для представления некоторых данных. Вот моя команда

mypath("directory")
png(file=mypath, res=600, width=10.5, height= 10.5,units="in",bg = "transparent")
require(rgl)
set.seed(1)
df <- data.frame(replicate(4,sample(1:200,1000,rep=TRUE)))
colnames(df) <- c("var1","var2","var3","var4")
plot3d(x=df$var1, y=df$var2, z=df$var3, col=as.numeric(df$var4), size=0.5, type='s',xlab="var1",ylab="var2",zlab="var3")
rgl.snapshot(mypath)

Приведенная выше команда работает и создает крошечное изображение, которое я не смог увеличить или увеличить его разрешение (до 600).

Я также попытался экспортировать PDF-файл, используя:

rgl.postscript(mypath, fmt="pdf") 

но когда я выполняю команду, R переходит в состояние «не отвечает».

Может кто-нибудь показать мне, как правильно экспортировать файл? Я бы предпочел PNG с разрешением 600 dpi.

Ваше здоровье,


person Error404    schedule 23.04.2014    source источник
comment
Я думаю, что размер снимка может быть привязан к размеру графического окна, в котором вы создаете график RGL?   -  person Ben Bolker    schedule 23.04.2014
comment
Привет @BenBolker, я пытался установить размер и разрешение окна (см. редактирование), но получил пустой белый файл. Удивительно, но файл был 37,5 Кбс, а не ноль.   -  person Error404    schedule 23.04.2014


Ответы (2)


Решением может быть установка размера окна с помощью open3d() :

require(rgl)
set.seed(1)

df <- data.frame(replicate(4,sample(1:200,1000,rep=TRUE)))
colnames(df) <- c("var1","var2","var3","var4")
open3d(windowRect=c(100,100,700,700))
plot3d(x=df$var1, y=df$var2, z=df$var3, col=as.numeric(df$var4), size=0.5, type='s',xlab="var1",ylab="var2",zlab="var3")
rgl.snapshot(<path to png file>)
person user3507085    schedule 08.06.2014
comment
Это не работает в Ubuntu 14.04, я получил только небольшой снимок верхнего левого угла, и я думаю, это то, что испытывал @Error404. - person epsilone; 30.01.2015

Может кому надо. Я использовал следующую комбинацию для persp3Drgl:

persp3Drgl(...)
par3d( windowRect=c( 0,0,100,100 ) )
snapshot3d( file.path(plotDir, "3D.png"), top = TRUE )

Без top = TRUE это не удалось.

person Stepan S. Sushko    schedule 28.10.2015