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

在R中创建12种常见鸟类观测数按日历周分布的条形图

R实现鸟类每周观测数量的分面条形图

解决方案代码与说明

1. 加载依赖包

library(tidyverse)
library(lubridate)

2. 数据预处理与统计

# 提取目标列、转换日期格式并计算ISO周数
processed_data <- data_artportal %>%
  select(artnamn, startdatum) %>%
  # 根据实际日期格式调整转换函数,比如dmy()/mdy()
  mutate(startdatum = ymd(startdatum),
         week = as.character(isoweek(startdatum)))

# 筛选12种观测次数最多的鸟类
top_12_birds <- processed_data %>%
  count(artnamn, sort = TRUE) %>%
  slice_head(n = 12) %>%
  pull(artnamn)

# 统计各物种每周观测数,调整周数因子顺序(将第53周移至前端)
weekly_counts <- processed_data %>%
  filter(artnamn %in% top_12_birds) %>%
  count(artnamn, week) %>%
  mutate(week = fct_relevel(week, "53"))

3. 绘制分面条形图

ggplot(weekly_counts, aes(x = week, y = n)) +
  geom_bar(stat = "identity", fill = "#4682B4") +
  # 按物种分面,可调整ncol/nrow控制布局
  facet_wrap(~artnamn, ncol = 3) +
  labs(x = "ISO周数", y = "观测数量", title = "12种常见鸟类每周观测数量") +
  theme_minimal() +
  # 旋转x轴标签避免重叠
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

关键细节说明

  • 日期转换:如果startdatum列不是YYYY-MM-DD格式,需将ymd()替换为对应格式的转换函数(如dmy())。
  • 分面布局:可通过修改facet_wrap的ncol参数调整每行显示的物种数量。
  • 因子顺序:fct_relevel确保第53周(跨年周)显示在x轴最左侧,适配跨年观测数据的展示逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:44:53