问题描述
我正在绘制地图。我有一个包含许多 (lat,lng) 坐标的数据集,每个坐标都分配给一种类型。示例:
df <- data.frame(type=c("a","a","b","c"),lat=c(47,46,48,48.5),lng=c(8,8.9,8.3,8.3))
>df
type lat lng
a 47 8
a 46 8.9
b 48 8.3
c 48.5 8.3
我想做的是在区域地图上绘制点,为每个组提供不同的颜色。组的数量-“类型”可以根据输入数据而变化,并且通常很大。
因此“a”点将是绿色,例如“b”红色和“c”蓝色。
到目前为止我用来绘制小组的方法是“ggmap”:
x <- get_stamenmap(...)
ggmap(x) + geom_point(#for a) + + geom_point(#for b)+ geom_point(#for c)
如果你有 +1000 种类型,这当然是不可行的。
有没有简单的方法可以做到这一点?或者至少更容易? 也许是另一个包,或者使用“for-loops”?
我感谢任何建议或评论, 谢谢
解决方法
也许这可能会有所帮助。在 geom_point
美学中,您可以指定 color
应基于 data.frame 中的 type
进行设置。您只需包含一次 geom_point
语句。此外,如果您想为不同类型指定单独的颜色,您可以使用 scale_color_manual
并在那里定义它们。
library(ggmap)
set.seed(12345)
points <- data.frame(type = sample(LETTERS[1:4],10,replace = T),lon = rnorm(10,-95.4,0.1),lat = rnorm(10,29.7,0.1))
ggmap(get_stamenmap()) +
geom_point(data = points,aes(lon,lat,color = type)) +
scale_color_manual(values = c("A" = "blue","B" = "green","C" = "red","D" = "orange"))
地图