通过ggplot2从包含变量计数的数据帧中绘制密度图

时间:2018-12-05 19:21:51

标签: r dataframe ggplot2 density-plot

我有3个数据框,显示了3个样品的遗传序列的大小。我的数据没有列出每个序列的大小,而是总结为每个大小的数目。数据帧如下所示:

> head(df1)
  Size Count
1   56     1
2   58     1
3   59     2
4   60     2
5   61     3
6   62     1

> head(df2)
  Size Count
1   53     1
2   55     1
3   57     2 
4   58     2
5   59     3
6   60     3

> head(df3)
  Size Count
1   53     1
2   56     1
3   57     3 
4   58     2
5   59     5
6   60    10

我想绘制这3个样品的重叠密度图,就像这样:

Example

我该怎么做?我发现的方法是制作每个大小都有重复编号的新数据帧,合并这3个新数据帧,然后使用ggplot()+ geom_density()。

new_df1 <- data.frame(size=rep(df1$Size, df1$Count), sample="No_1")
new_df2 <- data.frame(size=rep(df2$Size, df2$Count), sample="No_2")
new_df3 <- data.frame(size=rep(df3$Size, df3$Count), sample="No_3")
all_sample <- rbind(new_df1, new_df2, new_df3)

ggplot(data=all_sample, aes(x=size)) + geom_density(aes(colour=sample))

这是做我想做的正确方法吗?有没有更整洁的方式做到这一点?

欢迎任何想法!谢谢。

0 个答案:

没有答案