0

我想在一个图中绘制行为心理学实验的两个结果:通过 marplot 的性能(以正确答案的百分比衡量)和通过线图的反应时间(以 ms 为单位)。

除了一件事,我已经弄清楚了所有事情:x 轴上的刻度和线图中的点与条形的中心不对齐。有人建议将条形图保存为对象,然后使用“at=”,它适用于 x 轴上的刻度,但不适用于线图中的点。我也无法通过使用“线条”功能使其工作,因为比例不同(条形图左侧为 0.7-1.0,折线图右侧为 400-900)。

par(mar=c(6, 4, 4, 4))
m<-barplot(c(0.87,0.83,0.79),ylim=c(0.7,1),xpd=FALSE,ylab="% correct")
axis(1,at=m,labels=c("cond. A", "cond. B", "cond. C"))
par(new=T)
plot(c(720, 800, 830), pch=15, ,ylim=c(400,900), xlab="", ylab="",      
      axes=F, type="b")
mtext("reaction time [ms]",side=4,line=2.5)
axis(4, ylim=c(400,900))

感谢您的任何帮助

4

1 回答 1

1

在你的第二个情节,设置xlims等于那些barplot。用于par('usr')获取当前限制(长度为 4 的向量;xmin、xmax、ymin、ymax)。然后,当您绘制线时,您可以将m其用作 x 位置,它会对齐,因为您xlims也对齐。

par(mar=c(6, 4, 4, 4))
m<-barplot(c(0.87,0.83,0.79),ylim=c(0.7,1),xpd=FALSE,ylab="% correct")
axis(1,at=m,labels=c("cond. A", "cond. B", "cond. C"))
xlims <- par('usr')[1:2] # <-- get xlims
par(new=T)
plot(m, c(720, 800, 830), # <-- supply x coords
     pch=15, ,ylim=c(400,900), xlab="", ylab="",      
      axes=F, type="b", xlim=xlims) # <-- supply xlims
mtext("reaction time [ms]",side=4,line=2.5)
axis(4, ylim=c(400,900))
于 2015-07-24T14:00:19.033 回答