通过ggplot2中的单独数据框添加颜色映射

时间:2016-03-13 16:32:28

标签: r 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

我有一个额外的DataFrame,其中包含以下内容:

> 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

现在我想根据&#39;类型&#39;来为密度图着色。第二个数据框中的列,左边的两个图得到一个颜色,右边的两个图得到另一个颜色。

我可以在“情节”中添加一个额外的列。 data.frame,其中包含由&#39; type&#39;指定的映射。在第二个数据框中作为附加列,这是最好的方法吗?

1 个答案:

答案 0 :(得分: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)