2016-10-27 5 views
2

Rの料理ブック機能multiplotを使用して、表から色分けで値(離散)を視覚化するいくつかのプロットを含む画像を生成します。そうするために、ggplotオブジェクトのリストをループ内に作成したいと考えました。私はcolor=as.factor(unlist(colors2[i,]))[sort.cd34]で色を設定しましたが、これはループ内のiの代わりにcolors2の同じ行が毎回使用されるため、すべてのプロットで同じ色分けになります。ループ内の複数のプロットの色を変更する

nr.plot <- 9 
colors2 <- Table1[1:nr.plot,11:38] 
snp.plot <- list() 
for (i in 1:nr.plot){ 
    p1 <- ggplot(scan,aes(x=c(1:28),y=cd34,color=as.factor(unlist(colors2[i,]))[sort.cd34])) +geom_point() + scale_color_manual(breaks=c("0","1","2"),values=c("yellow","orange","red")) 
    snp.plot[[i]] <- p1 
} 

どのように私はそれを避け、すべてのプロットオブジェクトのcolors2から異なる要素リストを得ることができますか?私はそれが適切であるかどうか分かりませんが、 p1$mappingは出力が得られます。

* x  -> c(1:28) 
* y  -> cd34 
* colour -> as.factor(unlist(colors2[i, ]))[sort.cd34] 

は変数colourは仕事に全部のためcolors2からの要因の私のベクトルを含めることはできませんか? ご協力いただきありがとうございます!

+0

そこに多くの方法がありますが、1がscan' 'にあなたの色の列に参加するので、' ggplot(CBIND(スキャン、COL =に似何かas.factor(coors2 [[i]]))、aes(color = col、...)) ' – Axeman

答えて

1

あなたは色審美的を色スケールと混同しています。 aes(color = some.factor)を設定すると、グレーレベルをsome.factorのレベルで変更する必要があることがggplotに伝えられます。これだけでは、使用される色は設定されず、ggplotはループの各繰り返しで同じデフォルトを使用します。さまざまなレベルで使用される実際の色を変更するには、scale_color_manual()に設定する必要があります。今、ループの繰り返しごとに

scale_color_manual(breaks=c("0","1","2"),values=c("yellow","orange","red")) 

を設定していますので、もちろんすべての色が同じです。あなたの例では

、次はうまくいくかもしれない:

scale_color_manual(values = unlist(colors2[i, ])) 
関連する問題