r - 分组观察的密度曲线
问题描述
我有一个数据集,每小时对不同物种进行观察。每一小时,所有的观察结果都会汇总到每个物种中,并持续 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 中做到这一点?我还想要一个地块中的所有物种密度曲线。我怎么做?
非常感谢!
解决方案
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()
推荐阅读
- angular - Angular + PWA = 没有 SSR?
- python - 如何在python中将数据框插入到mysql表中?
- ruby - 如何按索引对数组元素进行分组?
- gcc - 升级到 gcc9.3 后在 lto-wrapper 中链接段错误但 LTO 被禁用
- android - 模拟器是否支持 Alexa Auto sdk
- php - Netbeans 11、X-DEBUG、CakePHP4 无法在插件控制器的断点处停止 php 脚本
- jquery - 构建后反应项目内部的 TweenLite 无法正常工作
- node.js - Fetch API 在第一次调用时不发送数据 - NestJs
- javascript - 如何向 href 添加值,其中一些值来自 AJAX,一些来自 PHP 循环
- javascript - 使类别处于活动状态(Express,ejs)