Quantcast
Channel: グラフ - 廿TT
Viewing all articles
Browse latest Browse all 123

geom_pointrangeみたいなやつを並べて書きたい

$
0
0

f:id:abrahamcow:20200229082142p:plain

set.seed(1)
meanse <- lapply(1:7,function(i)cbind(mean=rnorm(10,0,2),se=rexp(10)))
names <- sapply(1:10,function(i)paste0(sample(LETTERS,10),collapse =""))
tab <-list(meanse=meanse,names=names)
class(tab)<-"seTable"

plot.seTable <-function(tab,layoutMat=matrix(1:length(tab$meanse),ncol =1),
                         alpha=0.05,leftmargin=7, col="black"){
  q <- qnorm(1-alpha/2)
  oldpar <- graphics::par(no.readonly =TRUE)
  N <- length(tab$meanse)
  ran <- range(sapply(tab$meanse,function(x)c(x[,1]-q*x[,2],x[,1]+q*x[,2])))
  graphics::par(mar = c(1.5, leftmargin,1.5,0), oma = rep(1,4))
  graphics::layout(mat = layoutMat, respect =FALSE)for(i in1:N){
    tmp <- tab$meanse[[i]]
    n <- nrow(tmp)
    plot.default(tmp[,1],1:n,xlim = ran,pch=16,
                 xaxt="n", yaxt="n",
                 xlab ="", ylab ="", 
                 main = paste("topic",i),
                 frame.plot =FALSE)
    segments(tmp[,1]-q*tmp[,2],1:n,tmp[,1]+q*tmp[,2],1:n)
    axis(side=2,at=1:n,labels = tab$names,las=2,lwd=0)
    abline(v=0,lty=2)if(i %% nrow(layoutMat)==0| i==N){
      axis(side=1)}}
  graphics::par(oldpar)}

plot(tab,matrix(1:8,ncol=2))

Viewing all articles
Browse latest Browse all 123

Trending Articles