0

大きな行列mdat(1000 行 16 列) には、最初の列がx変数として含まれ、他の列がy変数として含まれています。私がやりたいのは、同じウィンドウに15個の図があるRで散布図を作成することです。例えば:

mdat <- matrix(c(1:50), nrow = 10, ncol=5)

上記のマトリックスには、10 行と 5 列があります。最初の列を x 軸の変数として使用し、他の列を y 軸の変数として使用して、同じウィンドウに 4 つの異なる散布図を表示することは可能ですか? その場合、各グラフを実行してから同じウィンドウで作成する必要があるため、私は好まないことに注意してください。par(mfrow=私が必要としているのは、データと変数だけを与え、同じウィンドウにグラフを表示するパッケージxですy。これを実行できるパッケージはありますか? 見つかりません。

4

3 に答える 3

4

おそらく、最も単純な基本的な R の方法はmfrow(またはmfcol)です。

par(mfrow = c(2, 2)) ## the window will have 2 rows and 2 columns of plots
for (i in 2:ncol(mdat)) plot(mdat[, 1], mdat[, i])

?parさらなる調整について知りたいと思うかもしれないすべてを参照してください。

ベース R のもう 1 つの適切なオプションはlayout(ヘルプにいくつかの良い例があります) です。派手できれいにするために、ggplot2パッケージを使用できますが、データを長い形式に再形成する必要があります。

require(ggplot2)
require(reshape2)
molten <- melt(as.data.frame(mdat), id = "V1")

ggplot(molten, aes(x = V1, y = value)) +
    facet_wrap(~ variable, nrow = 2) +
    geom_point()

または、ファセットの代わりに色を使用します。

ggplot(molten, aes(x = V1, y = value, color = variable)) +
    geom_point()
于 2012-05-29T11:13:03.880 に答える
2

多分

library(lattice)
x = mdat[,1]; y = mdat[,-1]
df = data.frame(X = x, Y = as.vector(y),
                Grp = factor(rep(seq_len(ncol(y)), each=length(x))))
xyplot(Y ~ X | Grp, df)
于 2012-05-29T15:21:02.477 に答える