我正在尝试绘制两个不相交的触摸圆圈,但我想我错过了一些非常基本的东西......
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()
有人可以向我解释为什么这些圈子会重叠吗?
答案 0 :(得分: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)
已更新,可在评论和聊天中添加Gavin Simpson's出色的见解。我的回答可能是正确的,但Gavin提供了非常有用的理由为什么 asp=1
有效,以及为什么它不是默认行为。非常感谢他。
默认绘图设备设置尝试显示数据,而不假设变量之间关系的比例。直接引用加文:
原因
asp = 1
不是。{ 默认是asp = 1
没有 感知不共享的数据 常用的计量单位,如 身高与体重。为什么要改变 高度为1米,表示为a 重量变化1千克?
和
结果,沿x轴的距离 与那些人没有任何关系 y轴。因此,绘制的是a 真实圈子的转变 - 他们 真的是圈子,只是翻译 因为你是坐标系 将它们绘制成不合适的。
说明Gavin要点的一种方法是在默认设备(而不是jpeg设备)上绘制圆圈,然后重新调整设备的大小。你可以让圈子看起来各种奇怪。