Установка размера устройства 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, поэтому ручное удаление пустого пространства с краской не очень хорошая работа.
Маленькие картинки выглядят так:
Происходит следующее, если вы увеличиваете изображение (это то, что делает LaTex, когда я помещаю его в бумагу, оно увеличивает изображение, снимок экрана - из моего файла LaTex. Та же картинка, немного другой угол, но проблема остается той же):
Вы видите, что это выглядит неравномерно (не хорошо). Также вы уже можете увидеть проблему с большими файлами со слишком большим пробелом: маленькая картинка с некоторым пробелом выше уже разрушает мой заголовок.
Так как я мог решить эту проблему? Как я могу сказать R использовать полноэкранные графики, но без такого пустого пространства вокруг них? Когда я нажимаю на полноэкранный режим и сохраняю эти картинки, все в порядке, кроме пустого пространства вокруг него.
Вот файл png со слишком большим количеством пустого пространства вокруг него (на этом скриншоте ниже нет белого пространства, но когда я использую правильный масштаб, он есть):
Еще одно замечание: это код R, который я использую для сохранения png-файлов:
M <- par3d("userMatrix")
movie3d( spin3d(rpm=3), duration=20,dir="C:/test/movie", clean=FALSE )
play3d( spin3d(rpm=3), duration=20)
3 ответа
Вы можете проверить состояние устройства 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)