主要数据框架
data.frame(lat = c(38.6938, 38.4262, 32.7607, 37.083, 39.4619, 41.0042),
lon = c(-9.20587, -8.90007, -16.9595, -8.90918, -8.38391, -7.9699),
views = c(13565, 27020, 74420, 18550, 73253, 14615),
challenge = c("SPOT CIDADE", "SPOT NATUREZA I",
"SPOT NATUREZA II", "SPOT ROMANCE",
"SPOT PATRIMONIO", "SPOT GASTRONOMIA"),
stringsAsFactors = FALSE)
我正在尝试绘制地图,用于打印,结果将是每个挑战的地图,并根据每个视频的视图更改其大小。
到目前为止,我的代码将所有点都放在同一个地图中 - 我遇到了分面问题并改变了点的大小。
当我在美学中改变变量时,积分变得非常大。
缩放级别太近或太远。
我正在使用的代码如下。我看到的每一个例子要么离我想要的太远,要么就是不行。
我做得对,还是需要另一种方法?
谢谢!
library(ggplot2)
library(ggmap)
lon <- as.numeric(new$lon)
lat <- as.numeric(new$lat)
spots_df <- as.data.frame(cbind(lon, lat))
mapa_spots <- get_map(location = c(lon = mean(spots_df$lon), lat = mean(spots_df$lat)), zoom = 6, maptype = "terrain", scale = 2)
plot_spots <- ggmap(mapa_spots) +
geom_point(data = spots_df, aes(x = lon, y = lat, fill = "red", alpha = 0.8), size = 2, shape = 21) +
guides(fill=FALSE, alpha=FALSE, size=FALSE)
plot_spots
我从这段代码得到的结果:
假设你的数据框叫做dt
,这里是ggmap和ggplot2的情节。关键是使用base_layer
参数与ggplot(dt, aes(...))
,以便你可以进一步添加其他geom
就像一个ggplot
调用。您提到您希望每个挑战都在评论的单独地图中。我认为facet_wrap
可能就是你想要的。
library(ggplot2)
library(ggmap)
mapa_spots <- get_map(location = c(lon = mean(dt$lon),
lat = mean(dt$lat)),
zoom = 6, maptype = "terrain", scale = 2)
ggmap(mapa_spots, base_layer = ggplot(dt, aes(x = lon, y = lat, size = views))) +
geom_point() +
facet_wrap(~challenge, ncol = 3)
数据
dt <- data.frame(lat = c(38.6938, 38.4262, 32.7607, 37.083, 39.4619, 41.0042),
lon = c(-9.20587, -8.90007, -16.9595, -8.90918, -8.38391, -7.9699),
views = c(13565, 27020, 74420, 18550, 73253, 14615),
challenge = c("SPOT CIDADE", "SPOT NATUREZA I",
"SPOT NATUREZA II", "SPOT ROMANCE",
"SPOT PATRIMONIO", "SPOT GASTRONOMIA"),
stringsAsFactors = FALSE)