我和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
答案 0 :(得分:1)
以防万一有人在同一个问题上挣扎。可以使用spTransform
中的rgdal package
命令转换实际坐标,而不是使用另一种格式的坐标查找另一个shapefile - 在导入shapefile {{}后,在代码中添加此行。 1}}和坐标将以long / lat