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

杨树扦插生根天数累计个体统计及多培养基ggplot绘图求助

解决杨树幼苗生根累计统计与可视化问题

嘿,Camille!听起来你在杨树扦插生根数据的累计统计上遇到了小麻烦——别着急,用R的tidyverse工具链就能轻松搞定这个需求,我来一步步给你拆解:

第一步:数据预处理与累计统计

首先我们需要把原始数据整理成「按培养基分组,每天生根数+累计生根数」的格式。假设你的数据集叫root_data,结构是每行对应一个幼苗,包含media(培养基)和r_days(首次生根天数)两列。

先加载必备的工具包:

library(tidyverse)  # 包含dplyr(数据处理)和ggplot2(可视化)

然后执行数据处理流程:

# 1. 统计每个培养基每天的生根个体数
# 2. 填充缺失天数(比如某一天没有幼苗生根,补0保证曲线连续)
# 3. 计算累计生根数
cumulative_root_data <- root_data %>%
  count(media, r_days, name = "daily_rooted") %>%  # 按培养基+天数计数
  group_by(media) %>%
  complete(r_days = full_seq(r_days, 1), fill = list(daily_rooted = 0)) %>%  # 补全所有天数
  mutate(cumulative_total = cumsum(daily_rooted)) %>%  # 计算累计值
  ungroup()

这里的关键是complete()函数——它能帮你把某个培养基中没有生根记录的天数补全为0,避免累计曲线出现断层;cumsum()则会自动帮你累加每天的生根数,比如18天有2个个体生根时,累计数会直接加2,完美解决你的统计需求。

第二步:绘制累计生根曲线

有了处理好的累计数据,用ggplot2就能轻松画出四条对比曲线:

ggplot(cumulative_root_data, aes(x = r_days, y = cumulative_total, color = media)) +
  geom_line(linewidth = 1.2) +  # 绘制曲线,调整线宽让线条更清晰
  geom_point(size = 2.5) +  # 加上数据点,方便查看具体天数的累计数
  labs(
    x = "首次生根天数",
    y = "累计生根个体数量",
    color = "培养基类型",
    title = "不同培养基下杨树幼苗累计生根趋势"
  ) +
  theme_minimal() +  # 选用简洁的主题
  theme(
    plot.title = element_text(hjust = 0.5, size = 14, face = "bold"),
    axis.title = element_text(size = 12),
    legend.position = "top"  # 把图例放在顶部,更美观
  )

额外小提示

如果你的原始数据是宽格式(比如每列对应一个培养基,行是天数),可以先用pivot_longer()转成长格式再处理:

wide_data %>%
  pivot_longer(cols = -r_days, names_to = "media", values_to = "daily_rooted")

这样处理后,你就能得到直观的四条累计曲线,清晰对比四种培养基的生根速度差异啦。如果需要调整颜色、添加标注或者优化细节,随时再提问!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 10:05:25