绘制不相交的圆圈

时间:2011-01-03 19:53:00

标签: 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()

有人可以向我解释为什么这些圈子会重叠吗?

alt text

1 个答案:

答案 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设备)上绘制圆圈,然后重新调整设备的大小。你可以让圈子看起来各种奇怪。