在gap.plot

时间:2018-09-28 11:04:32

标签: r plot hmisc plotrix

我正在尝试使用R中的gap.plot包创建一个plotrix。我可以很好地创建折断轴,但是我想同时在图中显示一条折线位置并画了一个空白。

这是我到目前为止所拥有的;

library(plotrix)
library(Hmisc)

# some sample data    
days<-c(30,44,62,70,102,435)
result<-c(-0.4290, -0.4430, -0.4630, -0.4160, -0.5280, -0.4125)
sem<-c(0.027, 0.02, 0.023, 0.027, 0.023, 0.0157)

## make a second set of day values so the error bars can be added to the RHS plot
adj_days<-days-300
dat<-data.frame(days,result,sem,adj_days)


par(mfrow=c(1,1))
par(mar=c(2.5,2.5,2.5,2.5))    
par(tck=-0.02)
par(cex.axis=0.6)
par(mgp=c(0,0.3,0))

## plot the data

gap.plot(days,result,gap=c(120,420),gap.axis = "x",
         pch=21,type="o",col="black",xtics=c(435,435),xticlab=c(435),
         yticlab=NA,ytics=c(-1,1),ylim=c(-0.6,-0.2),xlim=c(20,450),xlab=NA,ylab=NA)

## add error bars

##LHS    

with (data=dat,expr=errbar(days, result, result+sem,result-sem, 
                                  add=T, pch=NA,cex=0.8,cap=0.01))

##RHS

with (data=dat,expr=errbar(adj_days, result, result+sem,result-sem, 
                           add=T, pch=NA,cex=0.8,cap=0.01))





 ## add axis lables    

    axis(side=1,at=c(30,45,62,70,102,435),labels=T,
                 cex.axis=0.6,cex.lab=0.6,mgp=c(0,0.3,0),tck=-0.02)

    axis(side=2,line=0,tck=-0.015,at=seq(-0.6,-0.2,0.1),las=1,cex.axis=0.6,
                 cex.lab=0.6,mgp=c(0,0.4,0))

   ## add axis breaks
   abline(v=seq(120,122.8,.001), col="white")
            axis.break(3,121,style="slash")        
            axis.break(1,121,style="slash")

这是情节的样子

Example gap.plot

如何继续在第102天和第435天的点之间划分线?

任何帮助都将不胜感激。

预先感谢

1 个答案:

答案 0 :(得分:0)

所以我想通了,希望能帮助可能遇到相同问题的其他人,这是解决方案

在轴命令之后和轴中断之前简单添加以下代码行

X<-c(102,135)
Y<-c(-0.528,-0.4125)
par(new=T)
plot(X,Y,type="l",xlim=c(20,150),ylim=c(-0.6,-0.2),xaxt="n",yaxt="n")

现在情节看起来像这样

Solved