I'm trying to draw a world map using ggplot
. My code is in my gist file. The output is correct when I don't use coord_map
but very strange when I use coord_map
:
ggplot(data = test, aes(fill = x)) +
geom_map(aes(map_id = id), map =world.ggmap, color = "white") +
expand_limits(x = world.ggmap$long, y = world.ggmap$lat) +
theme_tufte() +
coord_map()
ggplot(data = test, aes(fill = x)) +
geom_map(aes(map_id = id), map =world.ggmap, color = "white") +
expand_limits(x = world.ggmap$long, y = world.ggmap$lat) +
theme_tufte()
I've got the same error when I use data from the maps package :
library(ggplot2)
library(maps)
world <- map_data("world")
ggplot() +
geom_map( data=world, aes(x=long, y=lat, group = group, map_id = region),colour="white", fill="grey10", map = world ) +
coord_map()
Does anyone has an answer ?
I had a similar problem before, due to longitude values outside the range [-180,180]. In your example the data do not have this problem but my trick seems to work also here. In my case I just used 'xlim' to exclude the problematic data.
This solution seems to work in your case also (I used the code from your gist):
map+coord_map(xlim=c(-180,180))
It produces the following map:
There is still a problem with Antarctica, you can also consider clipping it too if you don't need this area:
map+coord_map(xlim=c(-180,180), ylim=c(-60, 90))
Another solution is to use wrld_simpl
from maptools
instead, but it retains issues with Antarctica.
require(maptools)
require(ggmap)
md <- map_data("world2")
data(wrld_simpl)
ggplot(wrld_simpl, aes(group = group, x = long, y = lat)) +
geom_map() +
coord_map()
I'm sure that is quite late but the same problem is still happening in ggplot.
If you're trying to zoom-in use the following approach.
ggplot()+...+xlim(c(-100, -25))+ ylim(c(-60, 20))
Good luck!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With