ggmap 和 scale_colour_brewer

ggmap and scale_colour_brewer

我正在尝试在通过 ggmap 在 R 中获得的地图上绘制频率。我的想法是我将在每个坐标集上绘制频率图。频率 ("freq") 将映射到六个和一个色标。数据如下所示:

         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 的参数,但没有可用。

您的代码创建了一个没有数据点的地图。这可能是你所追求的。一些东西。一是您不必键入 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")