2012-11-12 23 views
5
library(maptools) 
data(wrld_simpl) 
plot(wrld_simpl) 
box() 

Questo mi dà una mappa del mondo e mostra l'abbondante spazio bianco in alto e in basso nella mappa. Mi piacerebbe che questo spazio sparisse visto che ho bisogno di stampare molte mappe (~ 60). Sto usando knitr per il report in cui verranno incorporate le mappe. Per esempio.Come ridurre i margini di spazio bianco della mappa mondiale

Here is some text. 
<<chunk.maps, eval = TRUE>>= 
library(maptools) 
plot(wrld_simpl) 
box() 
@ 
And some more text. 

Ma non penso che questa sia una domanda knitr. Quindi:

  1. Come posso liberarmi dello spazio bianco?
  2. Come posso essere sicuro che la mappa riempia la mia pagina da sinistra a destra?

ho cercato mai, mar, par, ma senza fortuna del genere! Sto indovinando out.width per l'opzione chunk darà il risultato per la mia domanda 2, ma dal momento che sono così gravemente bloccato sulla domanda 1 trovo difficile da dire.

Grazie mille! C'è così tanto da imparare qui!

+0

hai provato a inserire 'par (mar = rep (0,4))' prima della chiamata a 'plot'? Al momento non riesco a controllarlo con knitr/latex, ma in molti dispositivi grafici R si elimina lo spazio bianco. – BenBarnes

+0

Chiamare 'par (...)' prima o dopo aver chiamato 'trama' non fa il trucco, sfortunatamente. Grazie comunque. Valeva la pena di provare. – Gerit

risposta

3

io uso ggplot2 per questi tipi di mappe:

require(ggplot2); theme_set(theme_bw()) 
wrld_simpl_df = fortify(wrld_simpl) 
ggplot(wrld_simpl_df, aes(x = long, y = lat, group = group)) + 
    geom_path() + coord_equal() 

enter image description here

Questo include anche gli spazi dove si lamentano. Il problema è che le proporzioni tra l'asse x e y sono fisse. Quindi, se scegli un dispositivo grafico quadrato, lascerai i bordi bianchi sopra e sotto. La soluzione è di rendere il tuo dispositivo grafico più o meno le stesse proporzioni della tua trama. Utilizzare fig.width e fig.height per farlo. Vedi this link per maggiori informazioni. A titolo illustrativo, quando salva la trama sopra con le corrette proporzioni:

ggsave("/tmp/plt.png", width = 16, height = 9) 

enter image description here

il problema non è più presente.

+0

Con 'fig.height' e' fig.width' solo nelle opzioni del blocco potrei cambiare la forma dei grafici. Questo è quello che voglio. Grande! All'inizio il mio titolo e la mia leggenda erano stati troppo piccoli, ma l'ho risolto con 'par (cex = 2)'. Grazie! (E non ho avuto bisogno di immergermi in un altro nuovo pacchetto per me, ad esempio 'ggplot2' -phew!) – Gerit

+0

sì, è necessario fare attenzione con la dimensione della trama quando si disegnano le mappe (ad esempio, è necessario impostare appropriato' fig.height' e 'fig.width' in modo che la mappa si riempia nello spazio bianco); l'altro approccio è semplicemente lasciar perdere e ritagliare le trame in seguito (vedere il [manuale grafico] (https://github.com/downloads/yihui/knitr/knitr-graphics.pdf) per ritagliare le immagini) –

+0

@Yihui Grazie tu, apprezzo il tuo contributo. Ora che ho controllato di nuovo il manuale della grafica, ricordo che in realtà ho provato a seguire le tue istruzioni, ma non ci sono riuscito. (Sono d'accordo che avrei dovuto accennare anche a questo.) Potrei riprovare, se aiuta la comunità quando pubblico il messaggio di errore. Vorrei aprire un nuovo post per questo però. Fammi sapere. – Gerit

Problemi correlati