2

最近我读到了 R 中的网格图形系统。它非常灵活,掌握了它应该能够制作非常复杂的图形。但是我还没有找到任何好地方可以让我绘制一个也可以重新调整大小的图表?问题如下:您如何使用grid图形系统以R使最终输出实际上可以调整大小?

4

1 回答 1

4

这样做的一种方法是不直接使用夹点图形系统,而是使用lattice它的接口。据我所知,该lattice软件包随 R 一起安装,并为底层Trellis图形(基于网格的图形)形成了一个非常灵活的接口。Lattice还允许您直接操作网格,因此实际上对于最复杂的图形,这将是您所需要的。

如果您真的要使用网格图形系统本身,则必须使用正确的坐标系才能使其具有可扩展性。“native”、“npc”(归一化父坐标)或“snpc”(方形归一化父坐标)都允许您重新缩放图形,因为它们给出了相对于当前视口大小(或它的一个方面)的坐标.

为了充分利用这些,请确保您非常了解视口的概念。我不得不承认我还有很多东西要学。如果你真的想继续下去,我可以推荐Paul Murrell 的《R Graphics 》一书

仔细看看那本书的第 5 章。您还可以从示例的 R 代码中学到很多东西,也可以在此页面上找到

给你一个:

grid.circle(x=seq(0.1, 0.9, length=100), 
            y=0.5 + 0.4*sin(seq(0, 2*pi, length=100)),
            r=abs(0.1*cos(seq(0, 2*pi, length=100))))

完全可扩展。如果您查看 的帮助页面grid.circle,您会找到该default.units="npc"选项。在这种情况下,这就是设置正确坐标系的地方。相比于

grid.circle(x=seq(0.1, 0.9, length=100), 
            y=0.5 + 0.4*sin(seq(0, 2*pi, length=100)),
            r=abs(0.1*cos(seq(0, 2*pi, length=100))),
            default.units="inch")

这是不可扩展的。

于 2011-02-11T11:08:38.997 回答