我有一个具有tweet坐标的数据框架,如:
library(ggplot2)
df <- data.frame(long = c(-58.1, -58.2, -58.3, -58.4, -58.5, -55),
lat = c(-34.1, -34.2, -34.3, -34.4, -34.5, -25))我想设计布宜诺斯艾利斯大都会区,也就是AMBA。它的定义是:经纬:(-58,-59)纬度:(-34,-35)
我的数据帧中有一行在AMBA区域之外。(对问题(2)很重要)
以下是我尝试过的:
加载阿根廷地图信息
con <- url("http://gadm.org/data/rda/ARG_adm2.RData")
print(load(con))
close(con)
ggmap <- fortify(gadm, region = "NAME_2") 为只包含AMBA的地块设置限制
lim <- data.frame(lon = c(-59, -58), lat = c(-35, -34))绘图
ggplot(data=ggmap, aes(x=long, y=lat)) +
scale_x_continuous(limits = c(-59,-58)) +
scale_y_continuous(limits = c(-35,-34)) +
geom_polygon(data = ggmap, fill = "grey80", aes(group=group)) +
geom_path(color="white",aes(group=group)) +
geom_point(data = df, aes(x = lon, y = lat, colour = "red"), alpha = 30/100)问题:
发布于 2013-07-15 07:43:46
尝试coord_map而不是scale_x_continuous/scale_y_continuous。设置坐标系统的限制会放大地形图(就像你用放大镜看它一样),并且不会像设定尺度上的限制那样改变底层数据。
ggplot(data=ggmap, aes(x=long, y=lat)) +
geom_polygon(data=ggmap, fill="grey80", aes(group=group)) +
geom_path(color="white",aes(group=group)) +
geom_point(data=df, aes(x=long, y=lat), colour="red", alpha=30/100) +
coord_map(xlim=-c(59, 58), ylim=-c(35,34))

https://stackoverflow.com/questions/17644262
复制相似问题