如何将ggplot(具有lon,lat和fill值)与ggmap连接?

Mat*_*ula 4 r ggplot2 ggmap

我希望有一张地图,以一定的比例显示该地区的价值分布.这是我的数据框:

head(trip)
   TIP      LON     LAT
1 1.318878 -73.9932 40.7223
2 1.370667 -73.9932 40.7222
3 0.933232 -73.9772 40.7559
4 1.268699 -73.9932 40.7628
5 1.265304 -73.9932 40.7429
6 1.193437 -73.9852 40.7447
Run Code Online (Sandbox Code Playgroud)

我使用以下代码生成了一个地图:

map <- ggmap::get_map("new york", zoom = 11)
nyc_map <- ggmap::ggmap(map, legend="topleft")
Run Code Online (Sandbox Code Playgroud)

该地图已正确显示.

我还用我的数据表示法生成了一个图层:

ggplot(aes(LON,LAT, fill = TIP), data=as.data.frame(trip)) + 
geom_tile() + 
scale_fill_continuous(low="white", high="blue") + 
coord_equal()
Run Code Online (Sandbox Code Playgroud)

这也是生成和显示的.

问题是我想要这样做:

nyc_map + 
ggplot(aes(LON,LAT, fill = TIP), data=as.data.frame(trip)) + 
geom_tile() + 
scale_fill_continuous(low="white", high="blue") + 
coord_equal()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error in p + o : non-numeric argument to binary operator
In addition: Warning message:
Incompatible methods ("+.gg", "Ops.data.frame") for "+" 
Run Code Online (Sandbox Code Playgroud)

如果你能帮助我加入这两个对象,我将不胜感激.

Jaa*_*aap 5

查看您的数据,最好使用geom_point而不是geom_tile.原因是这种数据点在地图上更好看.

如何组合ggmapggplot绘制一个图的示例:

library(ggplot2)
library(ggmap)

nyc_map <- get_map("new york", zoom = 12, maptype = "hybrid")

ggmap(nyc_map) + 
  geom_point(data=trip, aes(x=LON, y=LAT, fill=TIP), size=6, shape=21, position="jitter") + 
  scale_fill_continuous(low="white", high="blue")
Run Code Online (Sandbox Code Playgroud)

这段代码示例给出了以下映射:

在此输入图像描述

在上面的代码中我使用了position="jitter"因为两个点重叠.

使用数据:

trip <- read.table(text="TIP      LON     LAT
1.318878 -73.9932 40.7223
1.370667 -73.9932 40.7222
0.933232 -73.9772 40.7559
1.268699 -73.9932 40.7628
1.265304 -73.9932 40.7429
1.193437 -73.9852 40.7447", header=TRUE)
Run Code Online (Sandbox Code Playgroud)