Я хотел бы объединить эти два сюжета в один:
Но я бы хотел, чтобы самая большая точка была на заднем плане, а самая маленькая - на переднем, независимо от типа растения.
Я бы в принципе хотел сделать что-то вроде этого:
Но единственная проблема заключается в том, что растения существенно различаются по размеру, поэтому я хотел бы сохранить их индивидуальный размер точки плотности (сохранить их индивидуальные диапазоны).
Если я не могу сохранить их собственный размерный диапазон, но сделаю так, чтобы самая большая точка была позади, это будет менее идеальным, но выполнимым с тем, что я хочу делать.
Обновлено: Вот несколько примеров данных:
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
Плотность находится на двух разных уровнях: одно - очень маленькое, тощее растение, а другое - выше и занимает больше места.
Спасибо!
(Кстати, хорошей практикой является включение воспроизводимого примера, чтобы людям, которые хотят помочь вам, не приходилось выполнять дополнительную работу, которую вы уже сделали, или делать предположения о ваших данных, которые могут помешать вам получить соответствующий ответ. )
Здесь я сделал несколько поддельных данных и изобразил, как выглядит ваш пример:
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()
Большое спасибо за помощь. Я обязательно буду включать данные в будущие публикации. У меня проблема, когда он говорит, что не может найти функцию "%>%. Я добавлю некоторые данные в исходное сообщение.
Это говорит о том, что dplyr
не был успешно загружен. Мой ответ полагается на его загрузку с линией library(dplyr)
. Я предполагаю, что либо это было пропущено, либо не загрузилось.
Пожалуйста, предоставьте воспроизводимый пример, чтобы другие могли помочь ответить на ваш вопрос.