我有一个包含一些生物的数据集,我想在我的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输出,并希望能够将其用于这些可视化。预先感谢您的帮助!
干杯, 安妮
答案 0 :(得分:1)
要使用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")