2012-03-03 15 views
6

Tamaño del mapa con la latitud/longitud 38,31536111, -76,55011111 es diferente de un mapa con latitud/longitud 59.5624775, -139.7410994 (trazado de puntos en el mapa)¿Cómo arreglar el tamaño de un ggplot en R mientras lo guarda con png()?

mientras se guarda con png()

Cómo mantener el mismo tamaño? alto y ancho no es suficiente

EDIT: código completo

library(maps) 
library(ggplot2) 
data <- read.csv("data.csv", header=TRUE) 
lat = data$lat 
long = data$long 
world<-map_data('usa') 
sf<-data.frame(long=long,lat=lat) 
p <- ggplot(height=600, width=800) + 
geom_polygon(data=world, aes(x=long, y=lat,group=group)) 
p <- p + geom_point(data=sf,aes(long,lat),colour="white",size=1) 
p 

archivo de datos:

"lat","long" 
59.5624775,-139.7410994 
42.38748056,-94.61803333 

Si quito la primera línea del archivo de datos, el tamaño del mapa es diferente (más grande), que cuando ambas líneas están presente

+0

Nos encantaría un ejemplo reproducible. –

+1

, la altura y el ancho se deben especificar en 'png()' para controlar el tamaño de la imagen, no en 'ggplot()'. – joran

+1

intente agregar '+ coord_map()' –

Respuesta

10

Su código es un poco un compañero de servicio, por lo que lo arreglé en el formato reproducible a continuación. La solución ya viene dada por @joran; debe especificar el tamaño en png().

library(maps) 
library(ggplot2) 
#specify size here 
png("world.png",height=600,width=800) 

#here is a way to create very simple data frame from you coordinates 
data <- read.table(textConnection(" 
lat long 
59.5624775 -139.7410994 
42.38748056 -94.61803333"),header=TRUE,as.is=TRUE) 
long=data$long 
lat=data$lat 
world <- map_data('usa') 
sf<-data.frame(long=long,lat=lat) 
ggplot() + 
geom_polygon(data=world, aes(x=long, y=lat,group=group)) + 
geom_point(data=sf,aes(long,lat),colour="white",size=1) 

#this saves png in your current directory 
dev.off() 

EDIT: Ups, ahora cometí un error en el código anterior, ahora está solucionado.

enter image description here

+0

He generado dos imágenes, una con la primera latitud/longitud, y otra con ambos lat/long, según el código. Los tamaños de imagen son diferentes. EDITAR: Quiero decir, los tamaños del mapa, los tamaños de las imágenes son los mismos. –

+0

disculpa por el código desordenado. Solo estoy aprendiendo R, y debería haberlo limpiado antes de publicarlo. –

+0

No importa. Cambié el lat/long en la línea sf <-data.frame, y eso lo solucionó. Gracias por su ayuda :) –

Cuestiones relacionadas