2

我有一个包含一些生物的数据集,我想在我的 y 轴上绘制它,相对于我想在 x 轴上绘制的日期。但是,我希望曲线的波动代表生物体的丰度。即我想绘制一个由生物体分隔的相对丰度的时间序列,以显示与时间相似的模式。

然而,当然,仅针对生物体绘制日期并不会产生任何有关丰度的信息。所以,我的问题是,有没有办法使用 ggridges 使曲线代表丰度?

这是我的示例数据集的代码:

set.seed(1)
Data <- data.frame(
  Abundance = sample(1:100),
  Organism = sample(c("organism1", "organism2"), 100, replace = TRUE)
)
Date = rep(seq(from = as.Date("2016-01-01"), to = as.Date("2016-10-01"), by = 
'month'),times=10)
Data <- cbind(Date, Data)

ggplot(Data, aes(x = Abundance, y = Organism)) + 
  geom_density_ridges(scale=1.15, alpha=0.6, color="grey90")

这会产生一个包含两种生物的图,但是,我想要 x 轴上的日期而不是丰度。但是,这不起作用。我已经读到您需要指定 group=Date 或将日期更改为朱利安日,但是,这并不能改变我没有将丰度纳入情节的事实。

有没有人有日期与分类变量(即有机体)与ggridges中的连续变量绘制的图的示例?

我真的很喜欢从 ggridges 输出,并希望能够将它用于这些可视化。预先感谢您的帮助!

干杯,安妮

4

1 回答 1

2

要使用geom_density_ridges,它将有助于重塑数据以在单独的行中显示观察结果,而不是由 总结Abundance

library(ggplot2); library(ggridges); library(dplyr)
# Uncount copies the row "Abundance" number of times
Data_sum <- Data %>%
  tidyr::uncount(Abundance)

ggplot(Data_sum, aes(x = Date, y = Organism)) + 
  ggridges::geom_density_ridges(scale=1, alpha=0.6, color="grey90")

在此处输入图像描述

于 2018-10-13T20:34:18.660 回答