【问题标题】:plotting two categorical vectors in ggridges在ggridges中绘制两个分类向量
【发布时间】:2018-10-13 15:45:26
【问题描述】:

我有一个包含一些生物的数据集,我想将其绘制在我的 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 输出,并希望能够将它用于这些可视化。提前感谢您的帮助!

干杯, 安妮

【问题讨论】:

    标签: r ggplot2 ggridges


    【解决方案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")
    

    【讨论】:

    • 这一切都不同了!我以前从未遇到过 uncount 功能。非常感谢!
    • @AnniDjurhuus:如果这个或任何答案已经解决了您的问题,请点击复选标记考虑accepting it。这将帮助可能遇到同样问题的未来读者。它也会给回答者和你自己带来一些声誉。没有义务这样做。
    猜你喜欢
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多