2012-05-29 104 views
0

我有一個大矩陣mdat(1000行16列)包含第一列爲x變量,其他列爲y變量。我想要做的是在同一個窗口中使R有15個數字的散點圖。例如:如何在r中創建多個圖?

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

在上述矩陣中,我有10個行和5列。是否有可能將第一列用作x軸上的變量,將其他列用作y軸上的變量,以便在同一窗口中有四個不同的散點圖?請記住,我會不是寧願par(mfrow=,因爲在這種情況下,我必須運行每個圖形,然後在相同的窗口上生成它們。我需要的是一個包,以便我只給它數據和xy瓦拉貝萊斯,並在同一窗口上有圖表。 有一些可以做到這一點的軟件包嗎?我找不到一個。

+0

你能澄清你所說的 「在同一窗口15級人物」 是什麼意思?一行15行顯示15個關係(可能是不同的顏色)?或者在一個小組中有15個獨立的地塊,可能是4行x 4列,有一個地塊不見了?在第二種情況下,舒雅的答案將起作用。 –

+0

shujas回答工作。現在我對你的第一個案子有其他疑問。是否有可能在同一個窗口上使用不同顏色的15行,並解釋每種顏色,以便人們可以很容易區分哪種顏色代表哪個變量? – Iftikhar

+0

@ user4299大多數人會告訴你,15種顏色太多不能區分,但看到我的編輯開始。 – Gregor

回答

2

@ user4299可以以這種形式重新寫shujaa的ggplot命令,使用qplot這意味着「快速繪圖」起步時比較容易。然後代替刻面,使用variable來驅動顏色。所以第一個命令會產生與shujaa答案相同的輸出,然後第二個命令會以不同的顏色和圖例爲您提供一個繪圖上的所有線條。

qplot(data = molten, x = V1, y = value, facets = . ~ variable, geom = "point") 
qplot(data = molten, x = V1, y = value, color = variable, geom = "point") 
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的另一個好的選擇是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() 
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)