我有一个328040行的tbl_df

head(homVar)

  sample CHROM     POS ID    QUAL DP
1   H001 chr2L   43265  . 1790.77 50
2   H001 chr2L  950701  .  396.78 15
3   H001 chr2L  950723  .  430.77 14
4   H001 chr2L  950730  .  350.77 11
5   H001 chr2L 1648327  .  494.77 14
6   H001 chr2L 3274239  .  203.84  6

“样本”列是一个从H001到H230的字符 . “CHROM”列是七个级别的因子 . CHROM的“POS”值不一定是唯一的 . 每行对应于遗传变异的位置,并且每个样本存在不同数量的行 .

我通常要做的是根据位置,CHROM和样本绘制变体的频率 . 我可以做一个正常的条形直方图,但它对视觉解释不实用 . 我能够做密度图,但这并没有显示最具信息性的绝对计数 .

具体来说,我想要做的是生成直方图的数据,然后将其绘制为线条,但保留样本和CHROM的分离 . 因此,在窗口大小为例如100000计算行数(对于每个样本和CHROM) .

密度图的代码是:

my.plot = 
ggplot(homVar, aes(POS, col=sample)) + 
geom_density(weight=0.5) + 
facet_wrap(~CHROM, ncol=1)
my.plot

我正在查看ggplot_build函数和来自的信息

Making ggplot2 plot density histograms as lines

Need to extract data from the ggplot geom_histogram

关于如何绘制小平面,多系列直方图作为一条线的任何建议都将非常感激 .