使用 ggmap 为每个位置行生成地图
Producing a map for each location row using ggmap
我有一个数据框:
df <- read.csv(text = "name,lat,long
Tom,42,-73
Sally,41,-72
Harry,41,-74")
那有3个人的经纬度。使用 ggmap 我想每行生成一个地图,在这种情况下显示三个人中每个人的位置。
我以前用过 ggmap,但我的首选代码是:
ggmap(get_map(location = c(lon = lon, lat = lat,
zoom = 12, color = "bw", source = "osm"))) +
geom_point(data=df, aes(x=longitude,y=latitude), color='red')
...无法拉动地图并将其居中。我想先将地图以人的位置为中心,然后将点放在该中心位置,输出三张地图。
谢谢。
我们可以遍历数据框以每行生成一张地图:
library(ggmap)
p <- vector("list", 3)
for (i in seq_along(df)){
p[[i]] <- ggmap(get_map(location = c(lon = df$lon[i], lat = df$lat[i]),
zoom = 12, color = "bw", source = "google")) +
geom_point(data=df[i,], aes(x=long, y=lat), color='red')
}
> p[[1]]
> p[[2]]
> p[[3]]
备注:
- 你有
zoom = 12, ... source = "osm"
location = c(...)
参数。这些应该是 get_map()
. 的参数
- 出于某种原因,我在使用 openstreetmap 时遇到错误(HTTP 状态为“400 错误请求”),所以我使用了默认的 google 地图。
Map(function(x, y, z) {
ggmap(get_map(location = c(lon = x, lat = y),
zoom = 12, color = "bw", source = "google")) +
geom_point(data = df[z,], aes(x = long, y = lat), color = "red")
}, df$long, df$lat, seq_along(df))
我有一个数据框:
df <- read.csv(text = "name,lat,long
Tom,42,-73
Sally,41,-72
Harry,41,-74")
那有3个人的经纬度。使用 ggmap 我想每行生成一个地图,在这种情况下显示三个人中每个人的位置。
我以前用过 ggmap,但我的首选代码是:
ggmap(get_map(location = c(lon = lon, lat = lat,
zoom = 12, color = "bw", source = "osm"))) +
geom_point(data=df, aes(x=longitude,y=latitude), color='red')
...无法拉动地图并将其居中。我想先将地图以人的位置为中心,然后将点放在该中心位置,输出三张地图。
谢谢。
我们可以遍历数据框以每行生成一张地图:
library(ggmap)
p <- vector("list", 3)
for (i in seq_along(df)){
p[[i]] <- ggmap(get_map(location = c(lon = df$lon[i], lat = df$lat[i]),
zoom = 12, color = "bw", source = "google")) +
geom_point(data=df[i,], aes(x=long, y=lat), color='red')
}
> p[[1]]
> p[[2]]
> p[[3]]
备注:
- 你有
zoom = 12, ... source = "osm"
location = c(...)
参数。这些应该是get_map()
. 的参数
- 出于某种原因,我在使用 openstreetmap 时遇到错误(HTTP 状态为“400 错误请求”),所以我使用了默认的 google 地图。
Map(function(x, y, z) {
ggmap(get_map(location = c(lon = x, lat = y),
zoom = 12, color = "bw", source = "google")) +
geom_point(data = df[z,], aes(x = long, y = lat), color = "red")
}, df$long, df$lat, seq_along(df))