R 在地图上添加等高线

R 在地图上添加等高线,r,ggplot2,ggmap,R,Ggplot2,Ggmap,首先,这是我的数据集 Lon Lat CPUE Temperature 120.93 27 0.00 24.3 121.18 27 0.62 24.2 121.43 27 3.76 24.9 121.6 27.25 0.87 25 121.35 27.25 1.63 24.2 121.1 27.25 2.66 24.8 121.25 27.5 7.37 24.9 121.5 27.5 6.

首先,这是我的数据集

Lon     Lat CPUE    Temperature
120.93  27  0.00    24.3
121.18  27  0.62    24.2
121.43  27  3.76    24.9
121.6   27.25   0.87    25
121.35  27.25   1.63    24.2
121.1   27.25   2.66    24.8
121.25  27.5    7.37    24.9
121.5   27.5    6.26    25.2
121.75  27.5    12.02   19.4
121.95  27.75   30.40   18.5
121.7   27.75   93.81   23.1
121.65  28  282.83  27.1
121.9   28  10.43   22.3
122.15  28  36.11   18.2
122.4   28.25   170.05  17.9
122.15  28.25   1170.97 18.8
122.3   28.5    0.00    18.4
122.55  28.5    149.99  17.6
122.8   28.75   118.27  18.5
122.55  28.75   1838.31 17.6
122.25  29  1218.93 21.2
122.5   29  1245.63 18.7
122.75  29  235.07  17.9 123    29  33.01   19.1
这是我的带有CPUE数据点的ggmap:


我想知道是否可以在这张ggmap上添加温度等值线。

这里有一种方法,因为数据框中没有足够的数据点来生成等值线数据:

# generate regular grid since geom_contour doesn't work on this dataset
temp <- akima::interp(df$Lon, df$Lat, df$Temperature)
df.expanded <- expand.grid(x = temp$x, y = temp$y)
df.expanded$z <- as.vector(temp$z)
df.expanded <- na.omit(df.expanded)
rm(temp)

library(ggplot2)

# plot contour using stat_contour() on expanded data frame
ggmap(background) +
  stat_contour(data = df.expanded, binwidth = 1,
               aes(x=x,y=y,z=z)) +
  geom_point(data = df, alpha = 0.5,
             aes(x = Lon, y = Lat, size = CPUE))
#生成规则网格,因为geom_contour不适用于此数据集

temp这里有一种方法,由于数据帧中没有足够的数据点来生成等高线数据,因此参考:

# generate regular grid since geom_contour doesn't work on this dataset
temp <- akima::interp(df$Lon, df$Lat, df$Temperature)
df.expanded <- expand.grid(x = temp$x, y = temp$y)
df.expanded$z <- as.vector(temp$z)
df.expanded <- na.omit(df.expanded)
rm(temp)

library(ggplot2)

# plot contour using stat_contour() on expanded data frame
ggmap(background) +
  stat_contour(data = df.expanded, binwidth = 1,
               aes(x=x,y=y,z=z)) +
  geom_point(data = df, alpha = 0.5,
             aes(x = Lon, y = Lat, size = CPUE))
#生成规则网格,因为geom_contour不适用于此数据集
临时雇员
library(ggmap)
background <- get_map(location = c(min(df$Lon),
                                   min(df$Lat),
                                   max(df$Lon),
                                   max(df$Lat)),
                      zoom = 8)