我搜索了一下,发现使用{grid}可以旋转图像,对于某些绘图,您可以调整它们的旋转(例如plot(x,y)而不是plot(y,x))。
但是,我想知道是否有一种通用方法可以旋转R中的任何基本绘图(适用于在base graphics中生成的任何绘图)?
但是,我想知道是否有一种通用方法可以旋转R中的任何基本绘图(适用于在base graphics中生成的任何绘图)?
您可以将图形导出,重新读取并以rasterGrob
的形式旋转显示(或者是在旋转矩阵后以rasterImage
的形式,或者是如果您想要矢量路径,则使用grImport
grob)
plot(1:10, rnorm(10))
library(grid)
cap <- grid.cap()
grid.newpage()
grid.raster(cap, vp=viewport(angle=30))
gridGraphics
包现在可能是更好的选择。grid.cap
。
Error in UseMethod("as.raster") : no applicable method for 'as.raster' applied to an object of class "NULL"
。 - And_RgridBase
的包,允许在“绘图”中混合基本图形和网格图形。该包的vignette有一节关于将基本图形嵌入到网格viewports
中,因此您可以在那里查看是否可以围绕您的绘图制作网格包装器并使用网格进行旋转。不确定这是否是可行的路线,但据我所知,这是回答您问题的唯一潜在路线。gridBase
在CRAN上,作者是grid包的作者Paul Murrell。
浏览vignette后,我注意到在页面的Problems and Limitations部分中有一个项目,指出无法将基本图形嵌入到旋转的grid
视口中。所以我想你没什么办法了。
旋转的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)
rotate_plot
的函数,用法如下:rotate_plot(some_base_plot(x, y, ...))
这是不可能的,因为大多数基本图都不返回值。
一些图包含horiz
参数,允许您选择绘制的方向。请查看barplot.default
以了解如何实现此功能。(警告:这很混乱。)
@ucfagls建议使用gridBase
是最好的选择。在Murrell的R Graphics的附录B中有一些使用示例。
考虑到可以使用基本图形编写自己的绘图函数,我无法看出是否存在单一的解决方案。您真正想要的只是用y数据替换x数据的方法吗?您所说的“旋转”具体指什么?
是的,在R中可以通过使用Coord flip()函数旋转图表。
您可以将图形从水平翻转为垂直,也可以将其从垂直翻转为水平。
coord_flip()
是 ggplot
函数,这个问题是关于基础图形的。 - Rui Barradas