分组观察的密度曲线

时间:2018-05-22 08:35:25

标签: r density-plot grouped-table

我有一个数据集,我每小时观察不同的物种。对于每个小时,对每个物种汇集所有观察结果,并且这进行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

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

非常感谢!

1 个答案:

答案 0 :(得分:1)

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()

enter image description here

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