X轴和Y轴在0点相交。

3
我使用以下代码生成了此图表:
x<-c(0.916,  0.815, 0.101, -0.029, -0.166, 0.949, 0.073 , -0.054, 1.006)
y<-c(3.91, 5.17, 1.08, 1.28, 1.01, 4.37, 3.97, 0.77, 4.52)
plot(x,y, ylim=c(0, 8), xlim=c(-0.4, 1.2), pch=19, cex=0.6, cex.axis=1, cex.lab=1, yaxs='i', xaxs='i', las=1, bty="l")

我希望x和y在0处相交,我尝试使用axes=FALSE,并尝试使用axis函数,但都没有成功。希望您能帮助我解决这个问题,谢谢!
这是我尝试的方法:
plot(x,y, xlim=c(-0.5, 1.2), axes=FALSE, pch=19)
axis(1, pos=0)
axis(2, pos=0, at=0:8)

这里是一个看起来有些奇怪的图表!enter image description here

enter image description here


2
请查看此处:https://dev59.com/xmUq5IYBdhLWcg3wYvd6#14540014 - juba
是的,我已经尝试过了,但是x和y没有相交。 - Lucia
你能展示一下你之前尝试的代码和图表吗? - beroe
我刚刚添加了我的尝试! - Lucia
你的尝试结果有什么问题吗?它们难道不在0处相交吗?axis(1); axis(2, pos=0) #如果省略at参数,可能会更美观一些。 - lebatsnok
是的,我希望它们实际上在两个轴上相遇,但它们没有,我省略了“at”参数,但结果仍然一样! - Lucia
1个回答

1

enter image description here

plot(x,y, xlim=c(-0.5, 1.2), axes=FALSE, pch=19, ylim=c(0,8))
axis(1, pos=0)
axis(2, pos=0, at=0:8, labels=c("",1:8) )

需要的技巧是添加ylim参数,以使轴(2,...)调用构建一条直线到达(0,0)。否则,绘图区域不足以支持所要求的轴值范围。

完美通常用勾号来表示。这也有助于其他潜在的回答者看到他们需要在哪里寻找未解决的问题。 - IRTFM
我使用以下代码作为y轴: axis(2, pos=0, at=axTicks(2,axp=c(0,8,4)), las=1),而不是你的代码: axis(2, pos=0, at=0:8, labels=c("",1:8)),因为我想要轴标签之间的间隔为2,但你的代码很棒的一点是它省略了y轴的0。有没有什么方法可以将这两个代码合并起来?谢谢! - Lucia
使用:at=seq(0,8,by=2),labels=c("", 2,4 ,6,8) - IRTFM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接