如何在绘图中指定线条粗细的点数?

29

基本的R绘图函数通常使用参数lwd来指定线条粗细。然而,这些参数只是相对宽度,不同的帮助文件表明这是一个乘法因子。因此,线宽lwd = 1表示线宽为1 * 默认宽度

我该在哪里指定线条默认宽度,或者如何确保一条线的宽度例如0.75pt(类似于Excel中的设置)?


2
有一个问题,我自己解决了,现在把答案放在这里供大家参考。如果您有更多的补充,请随意添加,因为我仍然不确定是否完全理解了它。 - Joris Meys
1个回答

30

默认线条宽度取决于用于绘图的设备。为了理解这个信息,你需要了解英寸、点和像素的基本含义。一般规则如下:

  • 一个点等于1/72英寸
  • 一个像素标准上等于1/96英寸或0.75点。

然而这可能会依赖于你设备的设置:

  • pdf()postscript() 设备:
    • 标准上一个点被视为1/72英寸
    • lwd=1 表示线条宽度为1/96英寸或0.75点。
  • png()jpeg()tiff()bmp() 设备:
    • 标准上一个点被视为1/72英寸
    • 可以通过设置参数 res 来更改此值,该参数定义了每英寸的点数(ppi)
    • lwd=1 是1/96英寸,但会考虑 res 的设置。因此,如果 res=96lwd=1 就是1pt的粗细,但你的点会比普通点小。

还要注意,对于位图设备,更高的 res 设置将使你的图像在屏幕上放大。因此,在前面的例子中,使用 res=96lwd=1 给出了1pt的线条宽度,但在屏幕上显示时,将把线条厚度从1像素增加到1.33像素。如果你将这两个图形缩放为相同大小,它们看起来是一样的(分辨率除外)。

另请参见:

如何在 R 中指定绘图轴线的粗细?

如何增加 R 中箱线图的边框粗细?

点(pt)和像素(px)有什么区别?


对我来说,“lwd=1”太细,“lwd=2”太粗,使用小数值没有任何区别。是否有可以设置的“res”参数?@JorisMeys - xm1
2
@xm1 PDF没有分辨率,因为在矢量化图像中这是没有意义的。您可以尝试在绘图时设置cex参数或在pdf()函数中设置pointsize以获得所需的结果。 - Joris Meys
我正在使用 bxp 绘制到屏幕(RStudio),并使用 lines 添加“粗”线条。似乎 cexlines 没有影响。谢谢! - xm1

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