перекрывающиеся аэростаты в ggplot - PullRequest
0 голосов
/ 30 октября 2018

Я бы хотел соединить эти два графика в один:

SCAR density

BRRU density

Но мне бы хотелось иметь самую большую точку на заднем плане с самой маленькой точкой на переднем плане, независимо от типа растения.

Я бы хотел сделать что-то вроде этого:

plant density combined

Но единственная проблема заключается в том, что растения существенно различаются по размеру, поэтому я бы хотел, чтобы размер их точек плотности был индивидуальным (сохраняйте их индивидуальные диапазоны).

Если я не смогу сохранить свой собственный диапазон размеров, но сделаю так, чтобы за ним стояла самая большая точка, это было бы менее идеальным, но работающим с тем, что я хочу сделать.

РЕДАКТИРОВАТЬ: Вот некоторые примеры данных:

TRANSECT FRAME PLANT DENSITY
1        1      SCAR    3600
1        2      SCAR    3840
1        3      SCAR    0
1        4      SCAR    1880
2        1      SCAR    3480
2        2      SCAR    1600
2        3      SCAR    3640
2        4      SCAR    1280
1        1      BRRU    40
1        2      BRRU    40
1        3      BRRU    1320
1        4      BRRU    280
2        1      BRRU    120
2        2      BRRU    0
2        3      BRRU    120
2        4      BRRU    360

Плотности в двух разных масштабах, так как одно очень маленькое тощее растение, а другое выше и занимает больше места.

Спасибо!

1 Ответ

0 голосов
/ 30 октября 2018

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

Здесь я сделал несколько поддельных данных и изобразил, как выглядит ваш пример:

library(dplyr); library(ggplot2)
set.seed(42)
df <- data.frame(FRAME = rep(1:12, each = 4),
                 TRANSECT = rep(1:4, 12),
                 BRRU = runif(48, 0, 3000),
                 SCAR = runif(48, 0, 3000)) %>%
  tidyr::gather(PLANT, DENSITY, BRRU:SCAR)
ggplot(df, aes(FRAME, TRANSECT, size = DENSITY, color = PLANT)) + 
  geom_point()

Группируя по каждой координате и сортируя по убыванию, самые большие точки печатаются первыми, а меньшие точки печатаются позже, сверху:

ggplot(df %>% 
         group_by(FRAME, TRANSECT) %>% 
         arrange(-DENSITY) %>%
         ungroup(), 
       aes(FRAME, TRANSECT, size = DENSITY, color = PLANT)) + 
  geom_point()

enter image description here

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