首页 > 解决方案 > 分组观察的密度曲线

问题描述

我有一个数据集,每小时对不同物种进行观察。每一小时,所有的观察结果都会汇总到每个物种中,并持续 24 小时。以下是数据框的一部分:

Hr  Sp1 Sp2 Sp3 Sp4 Sp5
1   8   25  1   7   7
2   3   14  0   50  4
3   5   25  1   4   10
4   7   26  1   4   11
5   5   19  0   7   11

我想为每个物种的观察时间绘制密度曲线。因此,我有 24 个连续组(0100 小时,0200 小时....2400 小时),从 0000 小时开始作为 x 轴,y 轴是每个物种在 24 小时内每小时的计数或观察值。请建议我如何在 R 中做到这一点?我还想要一个地块中的所有物种密度曲线。我怎么做?

非常感谢!

标签: rdensity-plotgrouped-table

解决方案


library(reshape2)
library(ggplot2)

dt <- data.frame(Hr = 1:5,
                 Sp1 = c(8, 3, 5, 7, 5),
                 Sp2 = c(25, 14, 25, 26, 19),
                 Sp3 = c(1, 0, 1, 1, 0),
                 Sp4 = c(7, 50, 4, 4, 7),
                 Sp5 = c(7, 4, 10, 11, 11))

data <- melt(dt, id = c("Hr"))
data <- data.frame(Hr = rep(data$Hr, data$value),
                   variable = rep(data$variable, data$value))

ggplot(data, aes(Hr, colour = variable)) + geom_density()

在此处输入图像描述

http://ggplot2.tidyverse.org/reference/geom_density.html


推荐阅读