将城市添加到地图(ggplot2)

时间:2015-08-21 16:23:21

标签: r ggplot2 polygons ggmap

我和ggplot挣扎了好几天。我想用不同颜色的不同区域构建一个地图,并在其上添加城市的名称。我设法使用以下代码以不同方式绘制带有颜色区域的地图:

#require
library(plyr)
library(dplyr)
library(rgdal)
library(ggplot2)
library(ggmap)

#open data
data = read.table("region.txt", header=T, sep="\t", quote="", dec=".")
#open shapefile
mapa <-  readOGR(dsn=".",layer="DEPARTEMENT")

#merge dataframe/shapefile
mapa@data$id <- rownames(mapa@data)
mapa@data   <- join(mapa@data, data, by="ID_GEOFLA")
mapa.df     <- fortify(mapa)
mapa.df     <- join(mapa.df,mapa@data, by="id")
plotData <- join(mapa.df, data)

#plot
mapfr <- ggplot(plotData) + 
aes(long,lat,group=group,fill=area) + 
geom_polygon() +
geom_path(color="NA") +
coord_fixed() +
theme_nothing(legend = TRUE)

然后我打开包含要在创建的地图上绘制的城市的名称和长/纬的数据集:

#opendata
points = read.table("cities.txt", header=T, sep="\t", quote="", dec=".") 
#add points on the map    
mapfr + 
geom_point(data = points, aes(x = long, y = lat), color = "black", size = 1)

但我的观点完全不在地图上。不过,坐标是正确的。知道我应该改变什么才能正确地绘制我的点数?我知道有一种方法可以使用&#34; maps&#34;包,但我想使用ggplot。

我的数据集可用here

1 个答案:

答案 0 :(得分:1)

以防万一有人在同一个问题上挣扎。可以使用spTransform中的rgdal package命令转换实际坐标,而不是使用另一种格式的坐标查找另一个shapefile - 在导入shapefile {{}后,在代码中添加此行。 1}}和坐标将以long / lat

给出