我试图在R中用ggmap
获得的地图上绘制频率。我的想法是我会在每个坐标集上绘制频率图。频率(“频率”)将被映射到六个和一个色标。数据如下所示:
V7 V6 freq
1 42.1752 -71.2893 1
2 42.1754 -71.2893 1
3 42.1755 -71.2901 2
4 42.1755 -71.2893 1
5 42.1756 -71.2910 1
6 42.1756 -71.2907 1
7 42.1756 -71.2906 1
8 42.1756 -71.2905 1
9 42.1756 -71.2901 1
10 42.1756 -71.2899 2
11 42.1756 -71.2897 2
12 42.1756 -71.2894 2
13 42.1757 -71.2915 1
14 42.1757 -71.2910 1
以下是我正在使用的代码:
ggmap(newmap2) +
geom_point(aes(x = coordfreq$V7, y = coordfreq$V6),
data = coordfreq, alpha = 1/sqrt(coordfreq$freq),
colour = coordfreq$freq, size = sqrt(coordfreq$freq)) +
scale_colour_brewer(palette = "Set1")
我只将颜色映射到“freq”,但我无法使scale_colour_brewer
起作用。我已经尝试了几个scale_color_brewer
的参数,但没有。
答案 0 :(得分:0)
您的代码创建了一个没有数据点的地图。这可能是你追求的。一些东西。一个是你不必输入x = coordfreq$V7
。您只需输入x = V7
即可。这同样适用于您的代码中的其他类似情况。另一个问题是colour
应该在aes()
中。另一件事是freq
是数字。在为图形指定颜色时,需要将其作为因子或字符。另一个是freq
是一个函数。你想要取消这样的名字。希望这会对你有所帮助。
library(ggmap)
library(ggplot2)
# This get_map code was suggested by an SO user. Sadly, the edit was rejected.
# Credit to him/her (MichaelVE).
newmap2 <- get_map(location = c(lon = -71.2893, lat = 42.1752),
zoom = 17, maptype = 'terrain')
ggmap(newmap2) +
geom_point(data = mydf2, aes(x = V6, y = V7, colour = factor(frequency), size = sqrt(frequency))) +
scale_colour_brewer(palette ="Set1")