Вот отправная точка, к которой вы можете добавить слой geom_point
.Сначала я загружаю библиотеки, которых много.marmap
и oce
требуются для данных батиметрии и береговой линии соответственно.RColorBrewer
используется для цветовой палитры для батиметрии, а dplyr
необходимо для mutate
.magrittr
предоставляет оператор составного канала назначения (%<>%
), tibble
используется, когда я реструктурирую данные батиметрии, а ggthemes
предоставляет theme_tufte
.
# Load libraries
library(ggplot2)
library(marmap)
library(oce)
library(RColorBrewer)
library(dplyr)
library(magrittr)
library(tibble)
library(ggthemes)
Здесь я получаюбатиметрические данные, реструктурируйте их и разбейте на интервалы глубины.
# Get bathymetry data
bathy <- getNOAA.bathy(lon1 = -68, lon2 = -56,
lat1 = 41, lat2 = 49,
resolution = 1, keep = TRUE)
bathy <- as.tibble(fortify.bathy(bathy))
bathy %<>% mutate(depth_bins = cut(z, breaks = c(Inf, 0, -200, -500, -1000,
-1500, -2000, -2500, -3000, -Inf)))
Затем я получаю данные береговой линии и помещаю их во фрейм данных.
# Get coast line data
data(coastlineWorldFine, package = "ocedata")
coast <- as.data.frame(coastlineWorldFine@data)
Наконец, я строю графикit.
# Plot figure
p <- ggplot()
p <- p + geom_raster(data = bathy, aes(x = x, y = y, fill = depth_bins), interpolate = TRUE, alpha = 0.75)
p <- p + geom_polygon(data = coast, aes(x = longitude, y = latitude))
p <- p + coord_cartesian(ylim = c(42, 47), xlim = c(-67, -57))
p <- p + theme_tufte()
p <- p + theme(axis.text = element_blank(),
axis.title = element_blank(),
axis.line = element_blank(),
axis.ticks = element_blank(),
legend.position = "right",
plot.title = element_text(size = 24),
legend.title = element_text(size = 20),
legend.text = element_text(size = 18))
p <- p + scale_fill_manual(values = rev(c("white", brewer.pal(8, "Blues"))), guide = "none")
print(p)
Это дает следующее:
Добавление слоя geom_point
позволит построить ваше полесайты.