2013-08-05 23 views
7

Mam problem z pełnoekranowym/nie pełnoekranowym urządzeniem rgl.Ustawianie rozmiaru urządzenia rgl

Obecnie używam R 3,00

I wykreślić persp3d działkę (RGL biblioteki) do mojego urządzenia, to otwiera się w dość małym oknie:

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

Która wygląda następująco:

sc

I n ow obróciłem go i zapisałem pojedyncze pliki png na moim dysku. Problem polega na tym, że pliki png są za małe? Chcę umieścić je w jednym arkuszu za pomocą polecenia LaTex i \animategraphics, ale ma to być piksele (nie ostre).

Po kliknięciu na ikonę pełnoekranową w urządzeniu rgl, aby działka R była większa, pomaga to i wszystko działa. Problem polega na tym, że wokół niego jest za dużo białej przestrzeni. Z tą białą przestrzenią powyżej, poniżej, po lewej i prawej stronie nie mogę włączyć jej do LaTex, ponieważ nie pasuje ona ze względu na jej duży rozmiar (szerokość, wysokość). Mam 200 plików PNG, więc ręczne usunięcie białej przestrzeni za pomocą farby nie jest miłym zadaniem.

małej zdjęciach wyglądać następująco:

sc11

dodaje się dzieje, jeśli powiększyć (to, co lateks robi, kiedy kładę go do mojej pracy, zwiększa obrazu, zrzut ekranu jest z mojego pliku lateks sam obraz, nieco innym kątem, ale problem pozostaje taka sama).

sc22

Widać, że to wygląda pixely (nie dobrze). Również możesz zauważyć problem z dużymi plikami z zbyt dużą ilością białego miejsca: małe zdjęcie z białą spacją już niszczy mój tytuł.

Jak mogę rozwiązać ten problem? Jak mogę powiedzieć R, aby używał pełnoekranowych wykresów, ale bez tak dużej ilości białego miejsca wokół niego? Po kliknięciu na pełnym ekranie i zapisaniu tych zdjęć wszystko jest w porządku, z wyjątkiem otaczającej go białej przestrzeni.

Oto plik png zbyt dużo białej przestrzeni wokół niego (w tym screenie nie ma białego przestrzeń poniżej, ale kiedy używać odpowiedniego powiększenia to tam):

sc2

Jedno dodatkowe Uwaga: jest to kod R używam zapisać png- pliki:

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

Odpowiedz

3

można sprawdzić stan urządzenia RGL z par3d. "Biały znak" jest kontrolowany przez wartości "windowRect". Nastąpił automatyczny wzrost tych wartości wraz ze wzrostem rozmiaru wyświetlacza;

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

Można również określić, jakie będą narożniki okna.

?par3d 

To powinno dać sterować że unika zarówno „białe znaki problemu i tytuł nakładania.

Jeśli chcesz, aby obiekt większy w okienku, funkcja rgl.viewpoint można powiększyć. Mniejsza liczba markę obiekty wydają się większe

rgl.viewpoint( zoom = .5) 
+0

dziękuję za odpowiedź, ale to mi nie pomaga. W instrukcji mówi, że windowRect daje mi "lewą, górną, prawą i dolną część wyświetlanego okna (w pikselach)." Próbowałem ustawić na przykład 5,5,5,5 (małe wartości dla małych obramowań) z np. par3d ("usersMatrix", windowRect = c (5,5,5,5)), ale nie działa (brak obrazu). Wydaje się, że to tylko daje mi rozmiar, jakbym zwiększył go za pomocą myszy? Więc jeśli ustawię większe liczby, znów mam ten sam problem. Więc to nie jest rozwiązanie, ponieważ wciąż mam białą przestrzeń? –

+1

Musi być wystarczająca "biała przestrzeń", aby można było obrócić obiekt. Dopóki obiekt nie jest sferyczny, oznacza to, że będzie jakiś biały znak, gdy obiekt będzie wyświetlany pod pewnymi kątami widzenia. Może być konieczne wyeksportowanie go do obrazu i edycja, jeśli chcesz usunąć wszystkie białe spacje. Spróbuj 'par3d (" windowRect "= c (0,0,1200,1200))'. Myślę, że ostatnie dwie wartości muszą być duże. –

+0

dzięki za odpowiedź, ale: Biała przestrzeń nie jest konieczna do obracania? Nawet jeśli nie ma białej przestrzeni, może nadal obracać, lub powiedzieć, mniejszą białą granicę (niektóre małe granicy byłoby w porządku). Kiedy używam par3d ("windowRect" = c (161,23,876,691)), daje to odpowiednią wielkość fabuły, ale problem polega na tym, że wciąż jest za dużo miejsca? Jeśli zmniejszę liczby lub zmienię je, sama powierzchnia (rozmiar powierzchni) również się zmienia, więc nie tylko biała przestrzeń jest zmniejszona, ale także cała fabuła. Eksportujesz go do png i ręcznie usuwasz białą przestrzeń 200 razy? –

0

To wystarczyło, aby ustawić r3dDefaults.

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

Użyj par3d (windowRect = c (20, 30, 800, 800))

Powiązane problemy