这是我的数据:
dput(dt)
structure(c(15236000, 0, 0, 0, 0, 36722900, 45971100, 0, 0, 0,
0, 99067800, 91416000, 0, 0, 0, 0, 219396000, 230630600, 0, 0,
0, 0, 254380400, 354388700, 0, 0, 0, 0, 438443760, 462991400,
0, 0, 0, 0, 497156100, 235045400, 0, 0, 0, 0, 290932300, 168440600,
0, 0, 0, 0, 196797700, 362305500, 0, 0, 0, 0, 375372400, 1367158670,
0, 0, 0, 0, 1122186600, 978435120, 0, 0, 0, 0, 983735500, 2104276960,
0, 0, 0, 0, 2220253960, 1267607300, 0, 0, 0, 0, 1323143500, 1080187900,
0, 0, 0, 0, 1410693500, 840738200, 0, 0, 0, 0, 1226346700, 1139340100,
0, 0, 0, 0, 1758611700, 2425368000, 0, 0, 0, 0, 3150723500, 3141234200,
0, 0, 0, 0, 4124976700, 2880830100, 0, 0, 0, 0, 4403308600, 2923459800,
0, 0, 0, 0, 4360192600), .Dim = c(3L, 40L), .Dimnames = list(
NULL, c("10", "10", "34", "34", "59", "59", "84", "84", "110",
"110", "134", "134", "165", "165", "199", "199", "234", "234",
"257", "257", "362", "362", "433", "433", "506", "506", "581",
"581", "652", "652", "733", "733", "818", "818", "896", "896",
"972", "972", "1039", "1039")))
这是我用来生成条形图的代码:
n <- barplot(dt, axisnames = FALSE, las=1, offset = 0.1, col=c("gold1", "grey", "darkgray"), space=c(0, rep(c(0,0.5), (ncol(dt)-2)/2), 0),
ylim = c(0,5e9))
axis(1, at=(n[-length(n)] + diff(n)/2)[c(TRUE, FALSE)], labels = unique(colnames(dt)), lwd = 0)
legend("topleft",legend = c("Peter","Mark") , col=c("gold1", "darkgray"), pch=15)
最后,pvalues的向量和我想用0.05作为截止值:
dput(vec_sign)
structure(c(0.26568675227896, 0.231295165962475, 0.146062122767301,
0.0187166701304913, 0.266800697199367, 0.566155201859571, 0.209901856029658,
0.364700152093356, 0.60914593877063, 0.335501894803805, 0.857979911768549,
0.201770045767981, 0.247547900482962, 0.0238847396218355, 0.00166753510687916,
2.33535556849617e-05, 0.0803932103358651, 0.181860618123498,
0.000584951559321768, 0.000349070394928198), .Names = c("10",
"34", "59", "84", "110", "134", "165", "199", "234", "257", "362",
"433", "506", "581", "652", "733", "818", "896", "972", "1039"
))
vec_sign < 0.05
我希望在我的条形图中的特定条形图上方有漂亮的星号,当您应用最后一段显示的代码时,TRUE
将显示该星号。
答案 0 :(得分:4)
test <-vec_sign < 0.05
seqeven<-seq(from=1,to=length(n)-1,by=2)
seqodd<-seq(from=2,to=length(n),by=2)
y=pmax(dt[1,seqeven],dt[3,seqodd])[test]+1e8
x=n[seqeven][test]+0.5
text(x,y,"*")
答案 1 :(得分:2)
这是一种方法:
xpos <- seq(1, 48.5, by = 2.5)
for(i in seq_along(vec_sign)) {
ypos <- max(dt[, c(2*i-1, 2*i)]) * 1.05
if(vec_sign[i] <= 0.05) text(x = xpos[i], y = ypos, "*")
}