如何使用lwd
代表一些数量?
例如:
plot(NULL, type="n", xlim=c(4,7), ylim=c(1,6), xlab="", ylab="")
points(c(5.25,5.25), c(4,5), type="l", lwd=87)
points(c(5.5,6.5), c(3.5,3.5), type="l", lwd=92)
rect(5,3,5.5,4, col="white")
我希望使用points
函数绘制的线条与矩形一样宽/高。我手动找到了上面的值87和92。有没有办法计算这些数量?
编辑:
问题的背景是:我想绘制bezier curves,我希望曲线的粗细代表我的数据。我的第一个想法是使用lwd
。我能做得更好吗?
答案 0 :(得分:3)
lwd
是您尝试做的错误工具。实际线宽将相对于用户坐标发生变化,具体取决于缩放图窗口的大小(或保存时的尺寸)。您显然知道rect
命令,为什么不使用它?您也可以查看shape
包。
- 编辑 -
对于更复杂的形状,我的经验不会超出polygon
。有了它,你可以获得Bezier曲线的坐标bc
,然后在x = c(bc$x + dx, rev(bc$x - dx), y = c(bc$y + dy, rev(bc$y - dy)
周围绘制一个多边形,但我不确定它能找到复杂曲线的效果。
另外,如果您愿意,可以将points(..., type = "l")
替换为lines(...)
。 (我认为它使我的代码更具可读性。)