向ggplot2中的连接线添加2d密度轮廓

时间:2018-10-24 18:12:30

标签: r ggplot2

我想创建一个看起来像这样的图:

enter image description here

但是,我想基于连接的线合并密度(而不是像上面使用geom_density_2d的图形那样单独绘制点)。实际上,数据看起来像这样:

enter image description here

我在其中显示4点时间序列上的基因表达(y =基因表达值,x =时间)在两个示例中,中心线都是使用LOESS曲线拟合创建的。

如何基于从时间= 1到时间= 4的实际单个连接线创建密度或轮廓图?

这是到目前为止所做的:

# make a dataset 

test <- data.frame(gene=rep(c((1:500)), each=4), 
               time=rep(c(1:4), 125), 
               value=rep(c(1,2,3,1), 125))


# add random noise to dataset

test$value <- jitter(test$value, factor=1,amount=2)


# first graph created as follows: 

ggplot(data=test, aes(x=time, y=value)) + 
geom_density_2d(colour="grey") + 
scale_x_continuous(limits = c(0,5), 
                 breaks = seq(1,4), 
                 minor_breaks = seq(1)) +
scale_y_continuous(limits = c(-3,8)) +
guides(fill=FALSE) +
theme_classic() 


# second plot created as follows

ggplot(test, aes(time, value)) +
geom_line(aes(group = gene), 
        size = 0.5, 
        alpha = 0.3, 
        color = "snow3") +
geom_point() +
scale_y_continuous(limits = c(-3, 8)) +
scale_x_continuous(breaks = seq(1,4), minor_breaks = seq(1)) +
theme_classic()

在此先感谢您的帮助!

0 个答案:

没有答案