R:颜色gps点显示颜色较深的次数

时间:2016-12-12 17:38:06

标签: r ggmap

我想绘制gps点像热图 - 那些显示更多次的颜色会更暗/更暖。 我的数据如下所示:

       lon   lat Freq
1  -121.93 68.28    1
2  -117.72 70.72    1
3  -110.69 68.75    1
4   -94.79 61.03    1
5   -93.80 58.63    1
6   -92.18 62.88    1
7   -89.68 46.15    3
8   -83.00 62.50    1
9   -78.99 56.41    1
10  -78.87 56.39    1
11  -71.30 65.95    1
12  -67.36 62.84    1
13  -67.35 62.86    1
14  -67.25 63.45    2

我可以按如下方式绘制这些数据:

newmap<-getMap(resolution="low")
plot(newmap)
points(data3$V5, data3$V4, col = "red", pch = 15, cex = 0.5)

enter image description here

但是,我希望频率为2或3的点(参见Freq专栏)像热图一样更暗/更暖,附带一个图例。看起来可能有使用ggmap的解决方案,但我无法使用ggmap获取世界地图。 (我需要一张世界地图,因为我将绘制比在全球范围内的这个例子更多的GPS点数)。我喜欢这个世界轮廓的样子。

2 个答案:

答案 0 :(得分:0)

一种选择是使用rgb设置不透明度,而不是仅仅添加颜色。例如

points(data3$V5, data3$V4, col = rgb(1, 0, 0, 0.5), pch = 15, cex = 0.5)

答案 1 :(得分:0)

使用ggplot2:

library(ggmap)
library(ggplot2)
world <- map_data("world")
ggplot() + geom_path(data=world, aes(x=long, y=lat, group=group)) +
geom_point(data=data3, aes(x=lon, y=lat, colour=Freq, size=sqrt(Freq/pi))) +  scale_colour_gradientn(colours = rev(heat.colors(12))) +
  scale_size(guide = FALSE)

enter image description here