stat_contour (), чтобы заполнить области из карты батиметрии - PullRequest
0 голосов
/ 04 мая 2018

Согласно ответу @missuse на этот вопрос Участок батиметрии и береговой линии с использованием ggplot2 и marmap

Я создал этот сюжет enter image description here

По этому сценарию

Bathy <- getNOAA.bathy(lon1 = 37, lon2 = 38.7,
                       lat1 = -45.5, lat2 = -47.3, resolution = 1)
Bathy <- as.matrix(Bathy)
class(Bathy) <- "matrix"

Bathydf <- as.data.frame(Bathy)
Bathydf <- rownames_to_column(Bathydf, var = "Longitude")
Bathydf <- gather(Bathydf,Latitude,Depth, -1)
Bathydf <- mutate_all(.tbl = Bathydf, funs(as.numeric))


ggplot(data = ctd, aes(x = Longitude, y = Latitude)) +
  geom_raster(aes(fill = Chla)) +
  scale_fill_gradientn(colours = rev(my_colours)) +
  geom_contour(aes(z = Chla), binwidth = 2, colour = "red", alpha = 0.2) +
  geom_contour(aes(z = Chla), breaks = 0.1, colour = "darkgrey") +
  geom_contour(aes(z = Chla), breaks = 0.2, colour = "darkgrey") +
  geom_contour(aes(z = Chla), breaks = 0.3, colour = "black") +

  geom_contour(data = subset(Bathydf, Depth < 0),aes(x = Longitude, y = Latitude, z = Depth),
               bins = 10, colour = "darkgray") +
  stat_contour(data = subset(Bathydf, Depth >= 0),geom="polygon",
               aes(z = Depth), fill = "black") +

  geom_contour(data = Bathydf, aes(z = Depth), breaks = 1000, colour = "black", alpha = 1) + 
  geom_point(data = ctd, aes(x = Longitude, y = Latitude),
             colour = 'black', size = 3, alpha = 1, shape = 15) +


  theme(panel.background = element_blank()) +
  theme(aspect.ratio=1)

Это работает, но я не уверен, что использование stat_contour() - лучший способ для построения областей. Кроме того, чертя участки островов, он раскрашивает и некоторые их части, придавая им форму. Как вы думаете, использование stat_contour() - лучший способ для построения областей, и знаете ли вы, почему оно также наносит проводные точки вокруг большой черной области?

1 Ответ

0 голосов
/ 04 мая 2018

Вы смотрели на мое решение в этом посте ?

Вы проверили файл справки для marmap::autoplot.bathy? Вы смотрели на примеры там, и особенно на аргумент geom="contour"? Разве это не делает то, что вы хотите достичь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...