在直方图的y轴上绘制变量和

时间:2017-09-28 07:02:38

标签: r ggplot2 bioinformatics

我有这样的数据(来自DNA测序):

read.lengths = c(100, 100, 200, 250, 300, 400, 400, 500, 500)

每个长度只是读数中的一些DNA碱基。给定任意数量的箱,绘制读取长度与计数的直方图是很简单的。

ggplot(data.frame(read.lengths)) + geom_histogram(aes(x = read.lengths))

但我想做的是将基数总数放在y轴上,而不是读数的数量。即对于直方图中的每个bin,我想要Y轴上该bin中所有读取长度的总和。

2 个答案:

答案 0 :(得分:2)

试试这个。

library(ggplot2)
library(dplyr)
read.lengths <- c(100, 100, 200, 250, 300, 400, 400, 500, 500)
read.lengths.cat <- as.factor(read.lengths)

read.lengths.data <- data.frame(read.lengths.cat, read.lengths)

read.lengths.data <- aggregate(read.lengths ~ read.lengths.cat, 
            data = read.lengths.data, sum)

ggplot(aes(x = read.lengths.cat, y = read.lengths), 
       data = read.lengths.data) + 
  geom_bar(stat = "identity")

答案 1 :(得分:0)

感谢this answer让我以正确的方式看到它,我尝试了一些ggplot魔法,它似乎完美无缺。

ggplot(data.frame(read.lengths)) + geom_histogram(aes(x = read.lengths, y = (..count..*x))