我想将这两幅图重叠成一个图:
但是无论植物类型如何,我都希望背景中的点最大,而前景中的点最小。
我基本上想做这样的事情:
但是唯一的问题是植物的大小有很大不同,因此我想保持它们的密度点大小独立(保持其各自的范围)。
如果我不能保持自己的尺码范围,但要使它最大,那将是不理想的,但对我想做的事情是可行的。
编辑:这是一些示例数据:
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
密度有两种不同的尺度,一种是很小的骨感植物,另一种是更高的植物,占用更多空间。
谢谢!
答案 0 :(得分:2)
(顺便说一句,最好的做法是包括一个可复制的示例,这样,想要帮助您的人不必做您已经做过的额外工作,也不用猜测可能会阻碍您获得数据的数据。适当的答案。)
我在这里制作了一些虚假数据,并绘制了示例的外观图:
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()