R非时间数据的运行平均值
这就是我现在的情节。 它由以下代码生成:R非时间数据的运行平均值,r,ggplot2,average,bioinformatics,mean,R,Ggplot2,Average,Bioinformatics,Mean,这就是我现在的情节。 它由以下代码生成: ggplot(data1, aes(x=POS,y=DIFF,colour=GT)) + geom_point() + facet_grid(~ CHROM,scales="free_x",space="free_x") + theme(strip.text.x = element_text(size=40), strip.background = element_rect(color='lightblue',fill=
ggplot(data1, aes(x=POS,y=DIFF,colour=GT)) +
geom_point() +
facet_grid(~ CHROM,scales="free_x",space="free_x") +
theme(strip.text.x = element_text(size=40),
strip.background = element_rect(color='lightblue',fill='lightblue'),
legend.position="top",
legend.title = element_text(size=40,colour="lightblue"),
legend.text = element_text(size=40),
legend.key.size = unit(2.5, "cm")) +
guides(fill = guide_legend(title.position="top",
title = "Legend:GT='REF'+'ALT'"),
shape = guide_legend(override.aes=list(size=10))) +
scale_y_log10(breaks=trans_breaks("log10", function(x) 10^x, n=10)) +
scale_x_continuous(breaks = pretty_breaks(n=3)) +
geom_line(stat = "hline",
yintercept = "mean",
size = 1)
最后一行,geom_line
为每个面板创建平均线
但是现在我想在每个面板中有更具体的运行平均值。
i、 e.如果panel1('chr01')
的x轴范围为0到100000000,我希望得到每个1000000范围的平均值
mean1 = mean(x=0 to x=1,000,000)
mean2 = mean(x=1,000,001 to x=2,000,000)
提供运行平均值的一种方法是使用
geom_smooth()
局部回归方法。为了演示我提出的解决方案,我使用R函数创建了一个假基因组数据集。您可以调整geom_smooth
的span
参数,使运行平均值更平滑(接近1.0)或更粗糙(接近1/个数据点)
绘制的金线是总体平均值,对吗?是否可能对每种突变类型都有一个平均值。i、 就像上面的几幅图重叠在一起,所以对于每一种突变类型,我用不同的颜色来表示。谢谢!你可以从我的图中看到,每个面板有几条平均线,我想得到所有面板的运行平均值。但是不知道怎么做。尝试将
aes(color=MUTATION\u TYPE,group=MUTATION\u TYPE)
添加到ggplot()
调用中,然后从geom\u smooth()内部移除color=
。无法在没有新示例数据的情况下进行测试。
# Create example data.
set.seed(27182)
y1 = rnorm(10000) +
c(rep(0, 1000), dnorm(seq(-2, 5, length.out=8000)) * 3, rep(0, 1000))
y2 = c(rnorm(2000), rnorm(1000, mean=1.5), rnorm(1000, mean=-1, sd=2),
rnorm(2000, sd=2))
y3 = rnorm(4000)
pos = c(sort(runif(10000, min=0, max=1e8)),
sort(runif(6000, min=0, max=6e7)),
sort(runif(4000, min=0, max=4e7)))
chr = rep(c("chr01", "chr02", "chr03"), c(10000, 6000, 4000))
data1 = data.frame(CHROM=chr, POS=pos, DIFF=c(y1, y2, y3))
# Plot.
p = ggplot(data1, aes(x=POS, y=DIFF)) +
geom_point(alpha=0.1, size=1.5) +
geom_smooth(colour="darkgoldenrod1", size=1.5, method="loess", degree=0,
span=0.1, se=FALSE) +
scale_x_continuous(breaks=seq(1e7, 3e8, 1e7),
labels=paste(seq(10, 300, 10)), expand=c(0, 0)) +
xlab("Position, Megabases") +
theme(axis.text.x=element_text(size=8)) +
facet_grid(. ~ CHROM, scales="free", space="free")
ggsave(filename="plot_1.png", plot=p, width=10, height=5, dpi=150)