3

如何在strwidth不打开绘图窗口的情况下使用它,这似乎是默认情况下做的?

所以strwidth('this is cool', font = 12, units = 'in')打电话plot.new。这种行为可以制止吗?如果有怎么办?

4

2 回答 2

1

丑陋的解决方法,但在某些情况下可能有用(例如,我使用它来比较不同字符串的宽度,因此相对宽度就可以了):将strwidth每个 ASCII 或其他常见字符的结果存储在 a 中data.frame,然后使用 a查找函数而不是直接调用strwidth. 我已将这个小实用程序添加到rapportools中:

> strwidthest('R')
[1] 3.18499
>  strwidthest('R is awesome!')
[1] 28.66491

对于 12pt sans 字体,结果以毫米为单位返回。

于 2014-11-15T16:11:30.517 回答
0

默认测量在“用户”坐标中(帮助页面明确指出需要调用 plot.new()),但如果您选择不同的坐标系,例如“英寸”,则不需要打开设备创造一个结果。

str.ex <- c("W","w","I",".","WwI.")
sw <- strwidth(str.ex, units="inches"); sw
[1] 0.08333333 0.08333333 0.08333333 0.08333333 0.33333333

尽管我看到您尝试提供单位作为参数,但我没有调用 plot.new。

于 2013-05-09T00:59:56.100 回答