18 r
我试图绘制两个不相交的触摸圆圈,但我想我错过了一些非常基本的东西......
jpeg(file="test.jpg")
diam <- sqrt (2)
plot (c(-1,1), c(1,-1), xlim=c(-5,5), ylim=c(-5,5))
symbols (c(-1,1), c(1,-1), circles=c(diam,diam), add=TRUE, inches=FALSE)
dev.off()
Run Code Online (Sandbox Code Playgroud)
任何人都可以向我解释为什么这些圆圈重叠?

Jos*_*ich 16
通过以下方式设置宽高比asp:
diam <- sqrt (2)
plot (c(-1,1), c(1,-1), xlim=c(-3,3), ylim=c(-3,3), asp=1)
symbols (c(-1,1), c(1,-1), circles=c(diam,diam), add=TRUE, inches=FALSE)
Run Code Online (Sandbox Code Playgroud)
更新后,通过评论和聊天添加Gavin Simpson的出色见解.我的回答可能是正确的,但加文提供了非常有益的原因,为什么 asp=1工作,为什么它是不是默认的行为.非常感谢他.
默认绘图设备设置尝试显示数据,而不假设变量之间关系的比例.直接引用加文:
原因
asp = 1不是默认情况下asp = 1对于不共享公共测量单位的数据没有意义,例如高度与重量.为什么1米高的变化表示为1千克的重量变化?
和
结果,沿x轴的距离与y轴上的距离没有关系.因此,绘制的是真实圆的变换 - 它们实际上是圆形,只是被翻译,因为您绘制它们的坐标系是不合适的.
一种说明Gavin点的方法是在默认设备(而不是jpeg设备)上绘制圆圈,然后重新调整设备的大小.你可以让圈子看起来各种怪异.