`fontsize` 在 `grid` 图形中代表什么?
What does the `fontsize` represent in `grid` graphics?
fontsize
用于确定R图形中文字或点的大小。但它实际上代表什么?例如,
grid::grid.newpage()
grid::grid.points(default.units = "npc",
gp = gpar(fontsize = 100))
这里,点fontsize
是100。所以,我有两个问题:
- 这个值是什么意思,半径,直径还是点的面积?我能找到任何参考资料吗?
- 100的单位是什么?具体来说,是指100 pointsize (1 fontsize = 1pt)吗?否则,它是由设备规格决定的吗?如果是这样,1 fontsize = ?pt.
此外,我还有一个问题,在 R 语言中,是否有任何方便的函数可以将 pt
转换为像素 (px
)?例如,我们可以将 pt
单位转换为 mm
单位,如
convertUnit(unit(1, "pt"), "mm", valueOnly = TRUE)
请问有没有查询屏幕尺寸然后从pt
转换成px
的函数?
谢谢!
grid.points() 绘制的符号大小取决于几个因素,主要是 pch
,它决定了符号的形状,size
。默认情况下,后者是 unit(1, "char")
,这意味着大小进一步取决于当前字体大小(fontsize
和 cex
)。
图形引擎源代码 (https://github.com/r-devel/r-svn/blob/master/src/main/engine.c#L2110) 的深处是一些常量,它们根据符号形状进一步修改标称符号大小。例如,pch=1
将大小乘以 .375 得到圆半径。
是的,fontsize=100
表示100pt。
下面的代码通过绘制一个符号和一个等宽的矩形来演示计算:
library(grid)
grid.newpage()
pushViewport(viewport())
grid.points(.5, .5)
grid.rect(width=2*.375*unit(1, "char"))
grid.points(.5, .5, gp=gpar(fontsize=100))
grid.rect(width=2*.375*unit(100, "pt"))
fontsize
用于确定R图形中文字或点的大小。但它实际上代表什么?例如,
grid::grid.newpage()
grid::grid.points(default.units = "npc",
gp = gpar(fontsize = 100))
这里,点fontsize
是100。所以,我有两个问题:
- 这个值是什么意思,半径,直径还是点的面积?我能找到任何参考资料吗?
- 100的单位是什么?具体来说,是指100 pointsize (1 fontsize = 1pt)吗?否则,它是由设备规格决定的吗?如果是这样,1 fontsize = ?pt.
此外,我还有一个问题,在 R 语言中,是否有任何方便的函数可以将 pt
转换为像素 (px
)?例如,我们可以将 pt
单位转换为 mm
单位,如
convertUnit(unit(1, "pt"), "mm", valueOnly = TRUE)
请问有没有查询屏幕尺寸然后从pt
转换成px
的函数?
谢谢!
grid.points() 绘制的符号大小取决于几个因素,主要是 pch
,它决定了符号的形状,size
。默认情况下,后者是 unit(1, "char")
,这意味着大小进一步取决于当前字体大小(fontsize
和 cex
)。
图形引擎源代码 (https://github.com/r-devel/r-svn/blob/master/src/main/engine.c#L2110) 的深处是一些常量,它们根据符号形状进一步修改标称符号大小。例如,pch=1
将大小乘以 .375 得到圆半径。
是的,fontsize=100
表示100pt。
下面的代码通过绘制一个符号和一个等宽的矩形来演示计算:
library(grid)
grid.newpage()
pushViewport(viewport())
grid.points(.5, .5)
grid.rect(width=2*.375*unit(1, "char"))
grid.points(.5, .5, gp=gpar(fontsize=100))
grid.rect(width=2*.375*unit(100, "pt"))