【问题标题】:Boxplot not plotting all data箱线图未绘制所有数据
【发布时间】:2017-08-01 14:27:34
【问题描述】:

我正在尝试为时间序列(例如http://www.r-graph-gallery.com/146-boxplot-for-time-series/)绘制箱线图,并且可以让其他所有示例都可以工作,除了我的最后一个示例。我有六年(2011 年至 2016 年)的每月平均值,并有 2014 年和 2015 年的数据(尽管数量很少),但由于某种原因,没有显示 2014 年和 2015 年数据的方框。

我的输入数据包含三列:年、月和居住索引(0 到 1 之间的值)。有多个人(在本例中为 37 人),每个人每年(包括 2014 年和 2015 年)的平均居住指数为每月。

例如:

year    month    RI
2015    1        NA
2015    2        NA
2015    3        NA
2015    4        NA
2015    5        NA
2015    6        NA
2015    7        0.387096774
2015    8        0.580645161
2015    9        0.3
2015    10       0.225806452
2015    11       0.3
2015    12       0.161290323
2016    1        0.096774194
2016    2        0.103448276
2016    3        0.161290323
2016    4        0.366666667
2016    5        0.258064516
2016    6        0.266666667
2016    7        0.387096774
2016    8        0.129032258
2016    9        0.133333333
2016    10       0.032258065
2016    11       0.133333333
2016    12       0.129032258

对每条鱼重复。

我的代码:

   #make boxplot
   boxplot(RI$RI~RI$month+RI$year, 
   xaxt="n",xlab="",col=my_colours,pch=20,cex=0.3,ylab="Residency Index (RI)", ylim=c(0,1))
   abline(v=seq(0,12*6,12)+0.5,col="grey")
   axis(1,labels=unique(RI$year),at=seq(6,12*6,12))

平均趋势线与其他示例相同。

   a=aggregate(RI$RI,by=list(RI$month,RI$year),mean, na.rm=TRUE)
   lines(a[,3],type="l",col="red",lwd=2)

对于此事的任何帮助将不胜感激。

【问题讨论】:

  • 您不能发布数据或其中的一部分吗?
  • 我刚刚添加了我的数据的一小部分(非常小)。希望你关注它。

标签: r


【解决方案1】:

您的问题似乎是您的数据中存在缺失值NA,其他值绘制正确。我已经稍微简化了你的代码。

boxplot(RI$RI ~ RI$month + RI$year,
    ylab="Residency Index (RI)")
a <- aggregate(RI ~ month + year, data = RI, FUN = mean, na.rm = TRUE)
lines(c(rep(NA, 6), a[,3]), type="l", col="red", lwd=2)

另外,我相信箱线图可能不是描述数据的最佳方式。每个year/month 只有一个值,而箱线图需要更多值。也许一个简单的散点图会更好。

【讨论】:

  • 我每个物种有多个个体,这就是我希望使用箱线图的原因,但我也会尝试使用散点图。事情看起来好多了!谢谢。
猜你喜欢
  • 2017-10-31
  • 2017-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多