You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取行为频率并绘制鸟类行为随日龄变化的频率图?

解决方案

1. 提取目标行为的频率数据

你可以在现有数据处理流程后直接添加filter()函数筛选"Active"行为,也可以基于已有的汇总数据框做筛选:

# 方法1:在原有计算流程后直接筛选
active_freq <- df %>%
  group_by(agesincetaggingdays, behaviors) %>%
  summarise(n = n(), .groups = "drop") %>%  # 加.groups参数消除分组警告
  mutate(freq = n / sum(n)) %>%
  filter(behaviors == "Active")

# 方法2:若已有全量汇总数据框(比如命名为summary_df),直接筛选
# active_freq <- summary_df %>% filter(behaviors == "Active")

2. 绘制日龄-频率图表

用ggplot2包绘图是R中最常用的方式,若未安装先运行install.packages("ggplot2"):

library(ggplot2)

ggplot(active_freq, aes(x = agesincetaggingdays, y = freq)) +
  geom_point(size = 1.5, alpha = 0.6) +  # 散点展示原始频率数据
  geom_smooth(method = "loess", se = TRUE, color = "#2E86AB") +  # 添加平滑曲线与置信区间
  labs(
    x = "日龄(天)",
    y = "Active行为频率",
    title = "鸟类Active行为频率随日龄的变化"
  ) +
  theme_bw()  # 简洁黑白主题

补充优化

  • 若部分日龄无Active行为记录导致freq缺失,可补全0-1500所有日龄并将缺失值设为0:
library(tidyr)

active_freq_full <- active_freq %>%
  complete(agesincetaggingdays = 0:1500, fill = list(freq = 0))
  • 若不需要平滑曲线,可替换geom_smooth()为geom_line()来连接所有数据点,或仅保留geom_point()展示散点分布。

内容的提问来源于stack exchange,提问作者Skyk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 05:32:08