ggmap和scale_colour_brewer

时间:2015-05-26 01:03:02

标签: r ggplot2 ggmap

我试图在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的参数,但没有。

1 个答案:

答案 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")

enter image description here