2013-08-05 21 views
7

Rgl aygıtımın tam ekran/tam ekranı ile ilgili bir sorunum var.Rgl aygıtının boyutunu ayarlama

Şu benim cihazın içine bir persp3d arsa (kütüphane rgl) çizmek

R 3.00 kullanmak, bu oldukça küçük bir pencerede açılır:

R kodu:

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)]) 

Hangi şuna benzer: n

sc

Ben Bay döndü ve tek png dosyalarını sürücüme kaydetti. Sorun şu ki, png dosyaları çok mu küçük? Onları LaTex ve \animategraphics komutunu kullanarak bir kağıda koymak istiyorum, ama bu pixely (keskin değil).

Rg aygıtında tam ekran simgesini tıklatırsam, R çizimi daha büyük olacak, bu yardımcı olur ve her şey çalışır. Sorun şu ki, etrafında çok fazla beyaz boşluk var. Yukarıdaki bu beyaz alanla, aşağıda, solda ve sağda LaTex'e dahil edemiyorum çünkü büyük boyutu (genişlik, yükseklik) nedeniyle uymuyor. 200 png dosyam var, bu yüzden beyaz boşluğu boyayla elle kaldırmak güzel bir iş değil.

küçük resimler

şuna benzer: Ben kağıt koydu zaman

sc11

Eğer (bu yakınlaştırmak, aşağıdakiler, olur ne LaTex, bu resmi, ekran görüntüsü artırır . benim LaTex dosyası aynı resim, biraz farklı bir açıdan, ama sorun) aynı kalır: bunu) pixely (iyi değil görünüyor görüyoruz

sc22

. Ayrıca, çok fazla beyaz alan içeren büyük dosyalarla ilgili sorunu zaten görebiliyorsunuz: Yukarıdaki beyaz boşluğa sahip küçük resim, başlığımı zaten yok ediyor.

Peki bu sorunu nasıl çözebilirim? R'nin tam ekran çizimlerini kullanmasını ancak bunun etrafında çok fazla boş alan kalmamasını nasıl söyleyebilirim? Tam ekrana tıklayıp bu resimleri sakladığımda, etrafındaki beyaz alan hariç her şey yolunda. İşte

(bu ekran hiçbir boşluk aşağıda yoktur, ama doğru zum kullanırken o vardır) etrafında çok fazla beyaz boşluk ile png dosyasıdır: ayrıca

sc2

Bir not: Bu benim png- dosyaları kaydetmek için kullanmak R kodudur:

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

cevap

3

Sen par3d ile RGL cihazının durumunu denetleyebilir. "Boşluk", "windowRect" değerleri tarafından kontrol edilir. Ekranın boyutu arttıkça bu değerlerde otomatik bir artış var;

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

Ayrıca windowRect köşeleri ne olacağını belirtebilirsiniz.

?par3d 

Bu o "boşluk problemi ve başlık çakışma hem önler kontrol vermelidir.

görüntülemekte pencerede büyük nesne, rgl.viewpoint işlevi yakınlaştırabilir olmak için. Daha küçük sayı markasını nesneleri daha büyük görünmesini

rgl.viewpoint( zoom = .5) 
+0

Anwer için teşekkürler, ancak bana yardımcı olmuyor. Kılavuzda, windowRect bana "görüntülenen pencerenin solunda, üstünde, sağında ve altında (piksel olarak)" olduğunu söylüyor. Bunu ör. 5,5,5,5 (küçük sınırlar için küçük değerler) örn. par3d ("usersMatrix", windowRect = c (5,5,5,5)) fakat çalışmıyor (resim yok). Görünüşe göre, bu sadece bana fare ile artacağım gibi bir boyut veriyor? Yani daha büyük sayıları ayarlarsam, yine aynı problemi yaşıyorum. Yani bu bir çözüm değil, çünkü hala beyaz alanım var mı? –

+1

Nesneyi döndürebilmeniz için yeterli "boşluk" olması gerekir. Nesne küresel olmadıkça, nesne bazı görüntüleme açılarında görüntülendiğinde bazı boşluklar olacağı anlamına gelir. Tüm bu boşlukları kaldırmak istiyorsanız, bir görüntüye vermeniz ve düzenleyebilmeniz gerekebilir. Par3d ("windowRect" = c (0,0,1200,1200)) 'ı deneyin. Son iki değerin büyük olması gerektiğini düşünüyorum. –

+0

Cevabınız için teşekkürler, ancak: Beyaz alan döndürmek için gerekli değil mi? Beyaz boşluk olmasa bile, daha küçük bir beyaz yatılı olabilir (bazı küçük yatılılar iyi olur). Par3d'yi ("windowRect" = c (161,23,876,691)) kullandığımda bu, çizimin doğru boyutunu verir, ancak sorun şu ki, hala fazla alan var mı? Sayıları azaltıp değiştirirseniz, arsanın kendisi (yüzeyin boyutu) da değişir, bu nedenle sadece beyaz alan değil, aynı zamanda tam arsa da azalır. Png'ye vermek ve beyaz boşluğu el ile 200 kez çıkarmak mı? –

0

O r3dDefaults ayarlamak için yeterliydi.

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

An3d'niz için teşekkürler (windowRect = c (20, 30, 800, 800))

İlgili konular