Как мне отформатировать оси в plotRGB из растрового пакета R? - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь построить два сюжета рядом.Одним из них является RasterStack, для которого я использую plotRGB ().Однако оси - это беспорядок - на графике слишком много знаков после запятой для широты и долготы.Я также хотел бы изменить размер шрифта и ориентацию текста.

Это просто в plot (), но я не могу понять это для plotRGB.

Может кто-нибудь помочь?

Это код:

par(mar=c(4,5,4,2), mfrow = c(1, 2))
plotRGB(tayRGB, axes = TRUE, stretch = "lin", main = "RGB")
plot(knr, main = "Kmeans", cex.axis=0.96, col = viridis_pal(option="D")(10))

1 Ответ

0 голосов
/ 29 января 2019

Могу ли я порекомендовать использовать функцию RStoolbox)::ggRGB вместо plotRGB.Это даст вам полную функциональность ggplot для настройки вашего сюжета.Воспроизводимый пример:

set.seed(123)
R = raster(matrix(runif(400),20,20))
G = raster(matrix(runif(400),20,20))
B = raster(matrix(runif(400),20,20))
tayRGB = brick(list(R,G,B))

library(RStoolbox)
p1 = ggRGB(tayRGB, r=1, g=2, b=3, stretch = 'lin') +
  scale_y_continuous(labels = scales::number_format(accuracy = 0.001)) +
  scale_x_continuous(labels = scales::number_format(accuracy = 0.1)) +
  theme(axis.title.x = element_text(size = 30),
        axis.text.y = element_text(angle = 45))
p1

enter image description here

Чтобы построить другой график рядом с ним, вы можете либо переделать его в ggplot.Или вы можете использовать ggplotify :: base2grob, чтобы преобразовать базовый график R в гроб.

p2 = ggplotify::base2grob(~plot(rnorm(100)))
cowplot::plot_grid(p1,p2)

enter image description here

...