2017-05-27 2 views
1

私はこのRに新しく、このコミュニティには新規です。複数のデータセットに対してrを持つプロット関数の特定のカテゴリ変数に特定の色を割り当てる

私は現時点で多くのデータを処理しなければならず、私は自分の人生を楽にしようとしています。パイプラインを作り、ファイルをアップロードしてプロット、円グラフ、その結果、PCAが発生します。

私のデータセット内には、8つの特定のカテゴリ変数が再発生しています。 A-Hと呼ぶことができます。したがって、時間を節約するために、特定の変数に特定の色を割り当てたいと考えています: 例: A =青、B =白など

plot(sample.tsv $ Annotation、 col = c( "blue"、 "white"、 "light blue"、 "green"、 "purple"、 "red" )、

私の現在の機能は、最初のデータセットにはうまくいきますが、次のデータセットBには存在しません。もちろん色は、私が見逃している簡単な解決策はありますか?私はすでに3時間見ている 。ごちゃ混ぜと私は本当にwebsidesに役立ったものを、見つけることができません。 は事前にありがとうございます!

答えて

1

使い方matchでは、各変数名に異なる色を関連付けるマップを作成できます。
ここに、そのアイディアを明確にする例があります。
部分的に同じ変数名を共有する2つのデータセットを検討します。

set.seed(1) 
df1 <- as.data.frame(matrix(rnorm(100),ncol=5)) 
df2 <- as.data.frame(matrix(rnorm(100),ncol=5)) 
names(df2) <- c("V1","V2","V4","V6","V5") 

names(df1) 
[1] "V1" "V2" "V3" "V4" "V5" 
names(df2) 
[1] "V1" "V2" "V4" "V6" "V5" 

今、私たちはすべての変数名とそれに関連する色

all.vars <- unique(c(names(df1),names(df2))) 
all.cols <- rainbow(length(all.vars)) 

のベクトルとベクトルを生成し、その後、我々は、各変数名に異なる色最後に

(cols.df1 <- all.cols[match(names(df1), all.vars)]) 
[1] "#FF0000FF" "#FFFF00FF" "#00FF00FF" "#00FFFFFF" "#0000FFFF" 
(cols.df2 <- all.cols[match(names(df2), all.vars)]) 
[1] "#FF0000FF" "#FFFF00FF" "#00FFFFFF" "#FF00FFFF" "#0000FFFF" 

と一致これらの色を使用して2つのデータセットをプロットすることができます。ここでは、ggplot2を使用します。

library(reshape) 
df1m <- melt(cbind(df1,id=1:nrow(df1)),id.vars="id") 
df2m <- melt(cbind(df2,id=1:nrow(df2)),id.vars="id") 

library(ggplot2) 
ggplot(aes(x=id, y=value, col=variable),data=df1m)+geom_line(lwd=1)+ 
    scale_color_manual(values=cols.df1) 

enter image description here

ggplot(aes(x=id, y=value, col=variable),data=df2m)+geom_line(lwd=1)+ 
    scale_color_manual(values=cols.df2) 

enter image description here

関連する問題