使い方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)
ggplot(aes(x=id, y=value, col=variable),data=df2m)+geom_line(lwd=1)+
scale_color_manual(values=cols.df2)