是否可以在R(基本图形)中旋转绘图?

Tal*_*ili 15 plot r rotation

我搜索了这个并发现使用{grid}有一些方法可以旋转图像,而对于某些绘图,你可以使用它们的旋转(例如plot(x,y)而不是plot(y,x)).

但是,我想知道是否有一种通用方法来旋转R中的绘图(一个适用于基本图形中生成的任何绘图)?

bap*_*ste 8

您可以导出图形,将其重新读入,并将其显示为旋转rasterGrob,例如,(或者rasterImage在旋转矩阵之后,或者grImport如果您想要矢量路径,则为grob)

plot(1:10, rnorm(10))
library(grid)
cap <- grid.cap()
grid.newpage()
grid.raster(cap, vp=viewport(angle=30))
Run Code Online (Sandbox Code Playgroud)

gridGraphics包装现在可能是更好的选择.

注意:这似乎不适用于Rstudio的图形设备,可能是他们没有实现grid.cap.

在此输入图像描述

  • 你的代码不起作用!`UseMethod中的错误("as.raster"):没有适用于'as.raster'的方法应用于类"NULL"的对象` (4认同)

Rei*_*son 6

我有理由相信基本图形本身没有一种方法可以做到这一点.然而,有gridBase一个包允许人们在"情节"中混合基本图形和网格图形.该软件包的插图有一个关于在网格中嵌入基本图形的部分viewports,因此您可以查看是否可以在图形周围烹饪网格包装并使用网格进行旋转.不确定这是否是一条可行的路线,但据我所知,这是唯一可以找到答案的途径.

gridBase 在CRAN上,作者是网格包的作者Paul Murrell.

浏览小插曲之后,我注意到在页面上的问题和限制部分,其中指出,这是子弹的一个能够嵌入底座图形成旋转的 grid视口.所以我猜你运气不好.


bap*_*ste 6

这可能是通过gridGraphics包来实现的,虽然边缘感觉有点粗糙(这些例子?grid.echo对我来说都不适用),

plot(1:10, rnorm(10))

library(gridGraphics)

grab_grob <- function(){
  grid.echo()
  grid.grab()
}

g <- grab_grob()
grid.newpage()
pushViewport(viewport(width=0.7,angle=30))
grid.draw(g)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述