これを検索したところ、{grid}を使用すると画像を回転させる方法があり、一部のプロットでは回転を試すことができます(たとえば、plot(y、x)の代わりにplot(x、y))。
ただし、Rでプロットを回転させる一般的な方法(ベースグラフィックスで生成されたすべてのプロットで機能する方法)があるかどうかを知りたいですか?
ベースグラフィックス自体でこれを一般的に行う方法はないと私は合理的に確信しています。ただし、「プロット」にベースグラフィックとグリッドグラフィックを混在させることができるgridBase
パッケージがあります。パッケージのビネットには、グリッドviewports
にベースグラフィックを埋め込むセクションがあるため、プロットの周りにグリッドラッパーを作成し、グリッドを使用して回転できるかどうかを確認できます。これが実行可能なルートであるかどうかはわかりませんが、私が知る限り、あなたのQへの回答への唯一の潜在的なルートです。
gridBase
はCRANにあり、作成者はグリッドパッケージの作成者であるPaulMurrellです。
ビネットを閲覧した後、ページの「問題と制限」セクションの箇条書きの1つに注意します。これは、ベースグラフィックを回転grid
に埋め込むことは不可能不可能であると述べていますビューポート。だから私はあなたが運が悪いと思います。
グラフィックをエクスポートして読み戻し、回転させて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
が実装されていません。
回転する3D散布図
Rglパッケージのplot3D(x、y、z)関数を使用して、インタラクティブな3D散布図を作成することもできます。マウスで回転できる回転する3D散布図を作成します。最初の3つの引数は、点を表すx、y、およびzの数値ベクトルです。 col =とsize =は、それぞれポイントの色とサイズを制御します。
# Spinning 3d Scatterplot
library(rgl)
plot3d(wt, disp, mpg, col="red", size=3)
ベースグラフィックを使用して独自のプロット関数を作成できることを考えると、単一のソリューションがどのように存在するかはわかりません。 xデータをyデータで置き換える方法が本当に必要ですか? 「回転」とはどういう意味ですか?
機能 rotate_plot
のように使用されます
rotate_plot(some_base_plot(x, y, ...))
ほとんどの基本プロットは値を返さないため、これは不可能です。
一部のプロットにはhoriz
引数が含まれており、プロットを描画する方向を選択できます。を見てみましょう barplot.default
これを実装する方法を確認します。 (警告:面倒です。)
gridBase
を使用するという@ucfaglsの提案が最善の策です。 MurrellのRグラフィックスの 付録B での使用例がいくつかあります。