【发布时间】:2011-02-11 01:42:41
【问题描述】:
最近我读到了 R 中的网格图形系统。它非常灵活,掌握了它应该能够制作非常复杂的图形。但是我还没有找到任何好地方可以让我绘制一个也可以重新调整大小的图表?问题如下:如何在R 中使用grid 绘图系统,使最终输出实际上可以调整大小?
【问题讨论】:
标签: r graphics customization r-grid
最近我读到了 R 中的网格图形系统。它非常灵活,掌握了它应该能够制作非常复杂的图形。但是我还没有找到任何好地方可以让我绘制一个也可以重新调整大小的图表?问题如下:如何在R 中使用grid 绘图系统,使最终输出实际上可以调整大小?
【问题讨论】:
标签: r graphics customization r-grid
这样做的一种方法是不直接使用夹点图形系统,而是使用lattice 接口。据我所知,lattice 包是随 R 一起安装的,它为底层的 Trellis 图(基于网格的图)形成了一个非常灵活的接口。 Lattice 还允许您直接操作网格,因此实际上对于最复杂的图表,这将是您所需要的。
如果您真的要使用网格图形系统本身,则必须使用正确的坐标系才能使其具有可扩展性。 “native”、“npc”(归一化父坐标)或“snpc”(方形归一化父坐标)都允许您重新缩放图形,因为它们给出了相对于当前视口大小(或它的一个方面)的坐标.
为了充分利用这些,请确保您非常了解视口的概念。我不得不承认我还有很多东西要学。如果你真的想继续读下去,我可以推荐这本书R Graphics from Paul Murrell
仔细看看那本书的第 5 章。你也可以从例子的R代码中学到很多东西,也可以在this page上找到
给你一个:
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")
这是不可扩展的。
【讨论】: