首页 > 解决方案 > 如何绘制只有足够数据的图?

问题描述

我正在处理一个大型的野生动物重量和大小数据集,我按日期(第 1 季、第 2 季等)将其分成较小的部分。我编写了一个函数来在 ggplot2 中为每只动物创建图表,但有些动物被捕获的频率太低,以至于它们的数据基本上没有意义。

如何更改此功能以仅绘制在给定子集中出现超过 3 或 4 次的动物?

这是我拥有的功能:

individual_graph <- function(animal_number){
  a_plot <- ggplot(data=animal_number, aes(x=Date, y=Weight)) +
    geom_point() +
    theme_bw() +
    ggtitle(animal_number$Number)+
    NULL

  return(a_plot)
}

这是我用于生成图表的 for 循环:

  graph_list <- list(NULL)
for(animal_id in (unique(season_1$Number))){
  a <- individual_graph(season_1[Number==animal_id])
  graph_list <- c(graph_list, list(a))
}

plot_list

标签: rfunctionfor-loopggplot2

解决方案


table(animal_number) 

告诉您哪种动物被看到了多少次(按动物编号排序)。

seen3times<-sort(unique(animal_number))[tabulate(factor(animal_number))>3]

将为您提供至少已被看到 3 次的所有动物的唯一编号,然后使用

data[which(animal_number==seen3times)]

应该相应地过滤您的数据


推荐阅读