显示沿着箱形图放置的点的持续位置

时间:2015-07-10 19:19:59

标签: r boxplot

假设有一个列表列表:

list1<-list(a=20,b=30,c=12,d=15,e=20,f=2,g=8,h=0,l=3,z=22)
list2<-list(c=80,d=20,l=2,m=4,n=3,p=12,q=10,r=15,s=15,z=2)
list3<-list(a=9,b=8,d=4,e=3,f=4,g=5,s=8,t=23,u=20)
list4<-list(b=12,c=91,d=4,e=4,f=5,g=23,h=12,r=2,u=12)

我希望在另一个旁边显示一个带有4个箱图的情节,每个情节都指向标有每个箱图的4个列表中的一个,例如名称&#34; list1&#34;,&#34; list2&#34;,& #34; list3&#34;,&#34; list4&#34;。

在添加时,如果我想强调一个名为&#34; c&#34;的点的持续位置呢?在4个发行版的箱图中的列表中,前提是&#34; c&#34;可能存在与否?

1 个答案:

答案 0 :(得分:1)

如果你有一个列表如下:

# list of lists
listlist <- list(list1=list1, list2=list2, list3=list3, list4=list4)

您可以使用以下代码:

par(mfrow=c(1,4)) # setup figure
lapply(names(listlist), function(i) {
  boxplot(unlist(listlist[i]), ylim = c(0, 100), main = i) # boxplots
  points(unlist(listlist[[i]]["c"]), col = "red", cex = 5) # "c" observations
  })

enter image description here

请注意,如果您有多个观察结果&#34; c&#34;每个列表,然后您需要稍微更改代码:

par(mfrow=c(1,4)) # setup figure
lapply(names(listlist), function(i) {
  boxplot(unlist(listlist[i]), ylim = c(0, 100), main = i)
  points(y = unlist(listlist[[i]])[names(unlist(listlist[[i]])) == "c"], 
         x = rep(1, sum(names(unlist(listlist[[i]])) == "c")),  
         col = "red", cex = 5) 
  })