代码之家  ›  专栏  ›  技术社区  ›  Tal Galili

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

  •  14
  • Tal Galili  · 技术社区  · 14 年前

    不过,我想知道是否有 在R中旋转绘图的通用方法

    6 回复  |  直到 14 年前
        1
  •  6
  •   Gavin Simpson    14 年前

    我有理由肯定,基本图形本身没有一种方法可以通用地做到这一点。然而,有一个 gridBase 包,允许一个混合基本图形和网格图形在一个'绘图'。这个包的vignette有一个关于在网格中嵌入基本图形的部分 viewports

    网格基 作者是paulmurrell,网格包的作者。

    在浏览了这个小插曲之后,我注意到第页的“问题和限制”部分中的一个项目符号,它指出 旋转 grid

        2
  •  8
  •   baptiste    10 年前

    您可以将图形导出,读回,并将其显示为旋转图形 rasterGrob ,比如说,(或者 rasterImage 旋转矩阵后,或 grImport 格罗布如果你想要向量路径)

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

    gridGraphics 一揽子计划现在可能是一个更好的选择。

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

    enter image description here

        3
  •  7
  •   baptiste    9 年前

    ?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)
    

    enter image description here

        4
  •  4
  •   j0k gauthamp    12 年前

    旋转三维散点图

    也可以使用rgl包中的plot3D(x,y,z)函数创建交互式三维散点图。它创建了一个旋转的三维散点图,可以用鼠标旋转。前三个参数是表示点的x、y和z数字向量。col=和size=分别控制点的颜色和大小。

    # Spinning 3d Scatterplot
    library(rgl)
    
    plot3d(wt, disp, mpg, col="red", size=3)
    
        5
  •  2
  •   Spacedman    14 年前

    考虑到可以使用基本图形编写自己的绘图函数,我看不出一个解决方案是如何存在的。你想要的真的只是用y数据来表示x数据吗?你说的“旋转”到底是什么意思?

        6
  •  2
  •   Richie Cotton Joris Meys    14 年前

    函数 rotate_plot 像这样使用

    rotate_plot(some_base_plot(x, y, ...))
    

    有些情节包含 horiz 参数,允许您选择绘制绘图的方向。看一看 barplot.default 看看如何实现这一点。(警告:太乱了。)

    @ucfagls的使用建议 gridBase 是你最好的选择。有一些例子说明了它的用途 Appendix B Murrell的R图形。