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

时间:2010-09-25 06:43:11

标签: r rotation plot

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

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

5 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:6)

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

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

浏览晕影后,我会在页面上的“问题和限制”部分中注明其中一个项目符号,其中指出可以将基本图形嵌入旋转 grid视口。所以我猜你运气不好。

答案 2 :(得分:4)

旋转3D散点图

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

# Spinning 3d Scatterplot
library(rgl)

plot3d(wt, disp, mpg, col="red", size=3)

答案 3 :(得分:2)

鉴于可以使用基本图形编写自己的绘图函数,我无法看到单个解决方案是如何存在的。您想要的只是一种用y数据来处理x数据的方法吗? “旋转”究竟是什么意思?

答案 4 :(得分:2)

要使用的函数rotate_plot,如

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

是不可能的,因为大部分基础图都没有返回值。

某些图包含一个horiz参数,允许您选择要绘制绘图的方向。请查看barplot.default以了解如何实现此功能。 (警告:它很乱。)

@ ucfagls建议使用gridBase是你最好的选择。在Murrell的R Graphics的Appendix B中有一些使用它的例子。