1

我正在尝试用两个 y 轴绘制带有误差线的几个点。但是,在每次调用 plotCI 或 errbar 函数时,都会初始化一个新图 - 有或没有 par(new=TRUE) 调用 - 。

require(plotrix)
x <- 1:10
y1 <- x + rnorm(10)
y2<-x+rnorm(10)
delta <- runif(10)

plotCI(x,y=y1,uiw=delta,xaxt="n",gap=0)
axis(side=1,at=c(1:10),labels=rep("a",10),cex=0.7)
par(new=TRUE)
axis(4)
plotCI(x,y=y2,uiw=delta,xaxt="n",gap=0)

我也尝试过plotrix的twoord.plot函数,但我认为不可能添加误差线。

使用ggplot2我只能在两个具有相同 Y 轴的不同面板中进行绘图。

有没有办法做到这一点?

4

1 回答 1

2

使用add=TRUE,

如果为 FALSE(默认),则创建一个新图;如果为 TRUE,则将误差线添加到现有绘图中。

例如最后一行变成:

    plotCI(x,y=y2,uiw=delta,xaxt="n",gap=0,add=TRUE)

截图 1

PS:很难做到这一点ggplot2。看看这个哈德利代码

编辑

现在通过指定新的用户设置来重新定义用户坐标系。在这里,我手动完成。

plotCI(x,y=y1,uiw=delta,xaxt="n",gap=0)
axis(side=1,at=c(1:10),labels=rep("a",10),cex=0.7)
usr <- par("usr")
par(usr=c(usr[1:2], -1, 20))
plotCI(x,y=y2,uiw=delta,xaxt="n",gap=0,add=TRUE,col='red')
axis(4,col.ticks ='red')

截图 2

于 2013-06-11T08:57:36.350 回答