在R中,我总是觉得很烦恼的是基本的R、lattice和ggplot2图形都使用绝对点大小来表示文本和图形符号的大小。
这意味着,如果您增加了绘图窗口的大小以获取填满页面的图形,则所有文本和图形符号的大小都会相应地增加,这可能会导致不必要的混乱。
windows(width=5,height=5);qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = I(0.7))
到
windows(width=10,height=10);qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = I(0.7))
相对于其他元素,文本和绘图符号的比例缩放也会改变。Base R和Lattice图案也是如此。
在编写一些图形导出函数的背景下,我想知道是否可能编写一个函数,可以接收当前图形设备的输出(可以使用recordPlot()
访问),并按任意百分比缩放所有绘图符号、文本以及线条宽度,从而允许图形以任何尺寸进行导出,同时仍然保持相同的外观?也就是说,一个函数可以将整个图形按比例放大或缩小,同时保持相同的外观吗?