2016-07-09 5 views
1

散布図の1次元配列をすべて1つの変数に対して取得したいと考えています。私は 'pairs()'によって返された完全な行列からそれらを抽出することができましたが、他のプロットは私のcase.Changingレイアウトをc(1、)にすると有用ではありません。の変数は高いです。1つの変数に対する多くの変数の散布図

attach(iris) 
caret::featurePlot(x = iris[, 1:4], 
     y = iris[,5],#Species 
     plot = "pairs", 
     auto.key = list(columns = 3)) 

Full scatter plot

説明のための '種' としてコンディショニング変数と 'アイリス' のデータセットを使用してください。私が必要とするのは、他の3つの予測子、「Sepal.Length」、「Sepal.Width」「&」「Petal.Length」、および「Species」に色分けされた「Petal.Width」だけの単純なプロットです。

+0

「AF」というオブジェクトはどこにありますか?再現可能な例が必要です。 http://stackoverflow.com/help/mcveそれはまた、あなたが何を求めているのか不明瞭です。 –

+0

@ Hack-Rに追加する:あなたはオブジェクトを検査して、プロットの完全な行列を与える必要があります(私はあなたの最後の文から理解しています、その行列のスライスが一番右の列であることを理解してください)これをさらに処理します.... – Dilettant

+1

以前使用していたAFデータセットは、再現性のために 'iris'データセットに変更されました。お問い合わせ –

答えて

0
data(iris) 
library("ggplot2") 
library("reshape2") 

#melt your data 
iris$Species <- as.character(iris$Species) 
df_melt  <- melt(iris,c("Petal.Width","Species")) 
head(df_melt) 

# define colors 
df_melt$color <- "blue" 
df_melt$color[df_melt$Species == "setosa"]  <- "green" 
df_melt$color[df_melt$Species == "versicolor"] <- "orange" 

#scatterplot per group 
ggplot(df_melt,aes(Petal.Width,value)) + 
    geom_point(col=df_melt$color) + 
    facet_grid(.~variable) 

enter image description here

+0

:ありがとうございました。Speciesでポイントを追加できますか? –

0

reproducible exampleがなければ、それはこれで多くを行うのは難しいです。)

簡単な解決策はで1つの散布図を作り、その後、作られたプロットを受け入れるために他の変数をループをPDFファイルを開くことであろう時間。条件を設定したい因子の2つの異なるレベルを取る観測値を示すために、異なる記号と色を使用することができます。

pdf(file=<something>, <other settings>) 
for(i in 1:13){ # or perhaps: for(i in c(1,2,5,10,11,12,13)){ 
    plot(AF[,i], AF[,14], pch=<something>, col=<something>) 
} 
dev.off() 

アップデート:私は、一例としてirisデータセットを使用して上記の私の答えを説明することができます。

data(iris) 
add.legend <- function(...){ # taken from: https://stackoverflow.com/a/21784009/1217536 
    opar <- par(fig=c(0, 1, 0, 1), oma=c(0, 0, 0, 0), 
    mar=c(0, 0, 0, 0), new=TRUE) 
    on.exit(par(opar)) 
    plot(0, 0, type='n', bty='n', xaxt='n', yaxt='n') 
    legend(...) 
} 

pdf(file="Scatterplots of variables against petal width.pdf") 
for(i in 1:3){ 
    plot(iris[,i], iris[,4], pch=as.numeric(iris$Species), col=as.numeric(iris$Species), 
     xlab=names(iris)[i], ylab="Petal Width") 
    add.legend("top", legend=levels(iris$Species), horiz=TRUE, pch=1:3, col=1:3) 
} 
dev.off() 

新しいページ上の各プロットでPDFファイルを取得します。 @ Hack-Rと@Alexの答えは問題がありません(より良い言葉がないので、あまりにも厳しくないというわけではありません)。プロットは3つで絞ればOKですが、13のときは非常に有益な情報にはなりません。

enter image description here

1

ベースR solution-- par(mfrow= c(1,n))がある:PDF内のすべてのプロットは(PDFファイルから最初のプロットである)以下のグラフのようにきれいで、比例になりますキー:

data(iris) 
par(mfrow=c(1,3)) 
plot(iris$Sepal.Length, iris[,2]) 
plot(iris$Sepal.Length, iris[,3]) 
plot(iris$Sepal.Length, iris[,4]) 

enter image description here

プロットのbaseプロットの他の機能を使ってプロットをカスタマイズすることができます

+0

ありがとう。私は前にこのトリックを試しましたが、あまりにも多くの変数を持っているので、行に合わせることができませんでした。間にスペースを入れないように努力しました!(虹彩データはイラストだけです、私の元のデータセットは約14の変数を持っています) –

+0

@LithinReddyあなたはいつも複数の行を使うことができます... 13はどんな状況下でも一列に収まるように野心的です –

関連する問題