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

To daje mi mapę świata i pokazuje obfite białe spacje na górze i na dole mapy. Chciałbym, aby ta przestrzeń zniknęła, ponieważ muszę wydrukować wiele (~ 60) map. Używam knitr dla raportu, w którym zostaną osadzone mapy. Na przykład.Jak zmniejszyć białe marginesy na mapie świata?

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

Ale nie sądzę, że jest to pytanie knitr. A więc:

  1. Jak mogę pozbyć się białej przestrzeni?
  2. Jak mogę się upewnić, że mapa wypełnia moją stronę od lewej do prawej?

Próbowałem mai, mar, par, ale nie takie szczęście! Zgaduję, że out.width dla opcji porcji da wynik dla mojego pytania 2, ale ponieważ tak bardzo utknąłem na pytaniu 1, trudno mi powiedzieć.

Dziękuję bardzo! Tu jest tyle rzeczy do nauczenia!

+0

Czy próbowałeś wstawić 'par (mar = rep (0,4))' przed wywołaniem 'plot '? Nie mogę tego teraz sprawdzić za pomocą knitr/latex, ale pozbywa się białej przestrzeni w wielu urządzeniach graficznych R. – BenBarnes

+0

Wywołanie 'par (...)' przed lub po wywołaniu 'plot' niestety nie działa. Ale dziękuję. Warto było spróbować. – Gerit

Odpowiedz

3

używam ggplot2 dla tych rodzajów map:

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

Obejmuje to również spacje ty gdzie narzekają. Problem polega na tym, że współczynnik proporcji między osią X i Y jest stały. Jeśli więc wybierzesz kwadratowe urządzenie graficzne, pozostawisz białe ramki powyżej i poniżej. Rozwiązaniem jest sprawienie, aby twoje urządzenie graficzne miało w przybliżeniu takie same proporcje, jak twoja fabuła. W tym celu użyj fig.width i fig.height. Aby uzyskać więcej informacji, patrz this link. Jako przykład, podczas zapisywania działka powyżej w odpowiednich proporcjach:

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

enter image description here

problem nie występuje.

+0

Z '' fig.height' i 'fig.width' sam w opcjach porcji mogłem zmienić kształt wykresów. To jest to czego chcę. Wspaniały! Na początku mój tytuł i legenda były zbyt małe, ale naprawiłem to za pomocą 'par (cex = 2)'. Dziękuję Ci! (I nie musiałem zagłębiać się w kolejną nową paczkę dla mnie, tj. 'Ggplot2' -phew!) – Gerit

+0

tak, musisz być ostrożny z wymiarem wykresu podczas rysowania map (np. fig.height' i 'fig.width', aby mapa wypełniła białe pole); innym podejściem jest po prostu pozostawienie go w spokoju i przycięcie działek później (patrz [instrukcja graficzna] (https://github.com/downloads/yihui/knitr/knitr-graphics.pdf) do przycinania obrazów) –

+0

@Yihui Thank ty, doceniam twój wkład. Teraz, gdy ponownie sprawdziłem instrukcję graficzną, pamiętam, że faktycznie starałem się postępować zgodnie z twoimi instrukcjami, ale nie udało się. (Zgadzam się, że powinienem był o tym wspomnieć.) Mogłabym spróbować ponownie, jeśli pomoże to społeczności, gdy opublikuję komunikat o błędzie. Otworzyłem dla niego nowy post. Daj mi znać. – Gerit