Установка размера устройства rgl

У меня проблема с полноэкранным / не полноэкранным режимом моего устройства rgl.

В настоящее время я использую R 3.00

Я строю график persp3d (библиотека rgl) на моем устройстве, он открывается в довольно маленьком окне:

Код R:

persp3d(x, y, z, theta=50, phi=25, expand=0.75, col=red,
        ticktype="detailed", xlab="", ylab="", zlab="",axes=FALSE)
axes3d(c('x--','z'))

axis3d(edge='y+-',at =c(1,500,1000,1500,2000,2320),
labels =rownames(fd)[c(1,500,1000,1500,2000,2320)])

Который выглядит так:

Южная Каролина

Теперь я повернул его и сохранил одиночные файлы PNG на моем диске. Проблема в том, что файлы png слишком малы? Я хочу поместить их в один документ, используя LaTex и \animategraphics команда, но это пиксельно (не резкий).

Если я нажимаю на полноэкранный значок на устройстве rgl, чтобы увеличить график R, это помогает, и все работает. Проблема в том, что вокруг него слишком много пустого пространства. С этим пробелом сверху, снизу, слева и справа от него я не могу включить его в LaTex, потому что он не подходит из-за его большого размера (ширина, высота). У меня есть 200 файлов PNG, поэтому ручное удаление пустого пространства с краской не очень хорошая работа.

Маленькие картинки выглядят так:

sc11

Происходит следующее, если вы увеличиваете изображение (это то, что делает LaTex, когда я помещаю его в бумагу, оно увеличивает изображение, снимок экрана - из моего файла LaTex. Та же картинка, немного другой угол, но проблема остается той же):

SC22

Вы видите, что это выглядит неравномерно (не хорошо). Также вы уже можете увидеть проблему с большими файлами со слишком большим пробелом: маленькая картинка с некоторым пробелом выше уже разрушает мой заголовок.

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

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

sc2

Еще одно замечание: это код R, который я использую для сохранения png-файлов:

M <- par3d("userMatrix")
movie3d( spin3d(rpm=3), duration=20,dir="C:/test/movie", clean=FALSE )
play3d( spin3d(rpm=3), duration=20)

3 ответа

Используйте par3d(windowRect = c(20, 30, 800, 800))

Вы можете проверить состояние устройства RGL с помощью par3d. "Пробел" управляется значениями "windowRect". Эти значения автоматически увеличиваются при увеличении размера дисплея;

> par3d("windowRect")
[1] 100 100 356 378
> par3d("windowRect")  # made the window have roughly 4 times the area
[1] 137   0 744 544

Вы также можете указать, какими будут углы windowRect.

?par3d

Это должно дать вам контроль, позволяющий избежать как проблемы пробелов, так и перекрытия заголовков.

Если вы хотите увеличить объект в окне просмотра, rgl.viewpoint Функция может увеличить. Меньшее число заставляет объекты казаться больше.

rgl.viewpoint(  zoom = .5 )

Достаточно было установить r3dDefaults:

r3dDefaults$windowRect <- c(0,50, 800, 800) 
plot3d(mdatapc, col=kmeanspc.cluster, size = 10)    

Я думаю, используя aspect3d() может также пригодиться.

aspect3d(x=5, y=1 , z =1)
rgl.viewpoint(zoom = .5)
Другие вопросы по тегам