2016-03-13 44 views
0

我想繪製密度。 我有以下的數據幀:通過ggplot2中的單獨數據框添加顏色映射

> head(plotdat) 
    Var1  Var2 value 
1 1 K4me2_ChIP 3.584963 
2 2 K4me2_ChIP 5.247928 
3 3 K4me2_ChIP 5.700440 
4 4 K4me2_ChIP 6.357552 
5 5 K4me2_ChIP 5.832890 
6 6 K4me2_ChIP 4.392317 

這樣我的情節密度:

> ggplot(data = plotdat) + geom_density(aes(x = value)) + 
+ facet_wrap(~ Var2) 

enter image description here

我有一個包含以下內容的附加數據框:

> head(colD[,c(1,2)]) 
DataFrame with 4 rows and 2 columns 
       Sample  type 
      <character> <character> 
K4me2_ChIP K4me2_ChIP  ChIP 
K4me2_input K4me2_input  input 
K4me3_ChIP K4me3_ChIP  ChIP 
K4me3_input K4me3_input  input 

現在我想根據顏色來繪製密度圖在第二個數據框中輸入'type'列,所以左邊的兩個圖得到一個顏色,右邊的兩個得到一個顏色。

我能做到這一點是添加一個額外的列到'plotdat'data.frame,其中包含'type'在第二個數據框中指定的映射作爲附加列,這是最好的方式嗎?

+3

是,合併數據是最好的一段路要走。當每個數據點與同一行上的該數據點的所有信息(例如,長數據)一致時,Ggplot的效果最好, – Heroka

回答

0

我用這個代碼,將該列添加到我的plotdat:

idx <- match(plotdat$Var2, colD$Sample) 
plotdat$type <- factor(colD$type[idx]) 

然後繪製它:

ggplot(data=plotdat) + geom_density(aes(x=value, fill=type)) + facet_wrap(~ Var2)