2013-08-05 21 views
7

Ho un problema con lo schermo intero/non a schermo intero del mio dispositivo Rgl.Impostazione della dimensione del dispositivo RGL

Attualmente io uso R 3.00

ho tracciare una trama persp3d (biblioteca RGL) nel mio dispositivo, si apre in un bel piccola finestra:

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

Quale assomiglia a questo:

sc

I n lo ha ruotato e salvato i singoli file png sul mio disco. Il problema è che i file png sono troppo piccoli? Voglio metterli in un unico foglio usando LaTex e il comando \animategraphics, ma è pixely (non nitido).

Se faccio clic sull'icona a schermo intero nel dispositivo rgl, in modo che la trama R sia più grande, questo aiuta e tutto funziona. Il problema è che c'è troppo spazio bianco attorno ad esso. Con questo spazio bianco sopra, sotto, sinistra e destra non posso includerlo in LaTex, perché non si adatta a causa delle sue grandi dimensioni (larghezza, altezza). Ho 200 file PNG, quindi rimuovere manualmente lo spazio bianco con la vernice non è un buon lavoro.

Le piccole immagini simile a questa:

sc11

accade quanto segue, se si ingrandisce (questo è, che cosa LaTex fa, quando ho messo nella mia carta, aumenta l'immagine, screenshot è dal mio file LaTex stessa immagine, un angolo leggermente diverso, ma il problema rimane lo stesso):.

sc22

si vede che sembra pixely (non buono). Inoltre puoi già vedere il problema con i file di grandi dimensioni con troppo spazio bianco: la piccola immagine con uno spazio bianco sopra già distrugge il mio titolo.

Quindi, come posso risolvere questo problema? Come posso dire a R di usare i grafici a schermo intero ma senza così tanto spazio bianco attorno ad esso? Quando clicco su schermo intero e salvo quelle immagini tutto va bene, tranne lo spazio bianco attorno ad esso.

Ecco il file PNG con troppo spazio bianco intorno ad esso (in questo screenshot non c'è spazio bianco sotto, ma quando uso lo zoom corretto è lì):

sc2

Un altro nota: Questo è il codice R che uso per salvare i file png-:

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

risposta

3

è possibile controllare lo stato del dispositivo RGL con par3d. Lo "spazio bianco" è controllato dai valori "windowRect". C'è un aumento automatico di questi valori quando si aumenta la dimensione del display;

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

È inoltre possibile specificare quali saranno gli angoli della finestraRice.

?par3d 

Questo dovrebbe dare controllare che evita sia il "problema di spazio bianco e il titolo si sovrappongono.

Se si vuole fare l'oggetto più grande nella finestra di visualizzazione, la funzione rgl.viewpoint possibile zoomare. Numero più piccolo make gli oggetti appaiono più grandi

rgl.viewpoint( zoom = .5) 
+0

grazie per la tua anwer, ma non mi aiuta. Nel manuale si dice, che windowRect mi dà "la sinistra, in alto, a destra e in basso della finestra visualizzata (in pixel)." Ho provato a impostarlo ad es. 5,5,5,5 (piccoli valori per i bordi piccoli) con ad es. par3d ("usersMatrix", windowRect = c (5,5,5,5)) ma non funziona (nessuna immagine). Sembra che questo mi stia solo ridimensionando come se lo aumentassi con il mouse? Quindi se ho impostato numeri più grandi ho di nuovo lo stesso problema. Quindi questa non è una soluzione, dal momento che ho ancora lo spazio bianco? –

+1

Deve esserci abbastanza "spazio" in modo da poter ruotare un oggetto. A meno che l'oggetto non sia sferico, ciò significa che ci saranno degli spazi bianchi quando l'oggetto viene visualizzato in alcuni angoli di visualizzazione. Potrebbe essere necessario esportarlo in un'immagine e modificarlo se si desidera rimuovere tutti gli spazi bianchi. Prova 'par3d (" windowRect "= c (0,0,1200,1200))'. Penso che gli ultimi due valori debbano essere grandi. –

+0

grazie per la risposta, ma: lo spazio bianco non è necessario per la rotazione? Anche se non c'è spazio bianco, potrebbe ancora ruotare, o dire, un boarder bianco più piccolo (un piccolo boarder sarebbe ok). Quando uso par3d ("windowRect" = c (161,23,876,691)) questo dà la giusta dimensione della trama, ma il problema è che c'è ancora troppo spazio? Se riduco i numeri o lo cambio, cambia anche la trama stessa (la dimensione della superficie), quindi non solo lo spazio bianco viene ridotto ma anche la trama completa. Esportandolo in png e rimuovendo manualmente lo spazio bianco 200 volte? –

0

E 'stato sufficiente per impostare r3dDefaults:.

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

Usa par3d (windowRect = c (20, 30, 800, 800))