2016-07-07 340 views
0

我想在R中创建一个图,其中四个不同变量的比值比和它们的95%置信区间。我希望它看起来类似于下面的示例图片: enter image description here绘制比值比和95%置信区间

上图仅包含(b)图片,因为(a)图片几乎相似,我只想展示布局。

我一直在网上搜索,但没有发现任何看起来类似的东西。希望你能给我一些建议!

干杯!

回答

0

更多或更少的,与天然R:

### artificial data #### 
set.seed(321) 
bs<-sort(runif(20,-2,2)) 
sd<-runif(20,1,2) 
li1<-bs-2*sd 
li2<-bs+2*sd 
dat<-data.frame(li1,bs,li2) 
pos<-c(1:5,7:11,13:17,19:23) 
xl=range(dat) 
plot(1,type="n",xlim=xl,ylim=c(1,25),ylab="",frame.plot = F,yaxt = "n",xlab="lr") 
for (i in 1:length(dat[,1])){ 
    lines(dat[i,],rep(pos[i],3),lty=pos[i]%%6,pch="|",type = "b",cex = .5) 
} 
abline(v=0,lty=3) 
points(dat[,2],pos,pch="*",cex=.8) 
text(-2,pos[c(5,10,15,20)]+.95,paste("Text",1:4),cex=.8) 

enter image description here

+0

由于@Robert。这正是我的意思! 两个问题:我使用3种不同的模型(而不是在示例图片和绘图中使用的5个模型)。当我使用上面的代码时,线型的顺序不正确。我不完全确定,如何解决这个问题。我应该看看'lty'吗? 我也得到了一个错误消息的积分代码:即错误xy.coords(x,y):'x'和'y'长度不同。我认为这与'points(dataf [,2],'中的2'有关系,我使用'pos < - c(1:3,4:7)'来用我自己的数据测试模型 你有这方面的建议吗? – Keizer