我正在尝试使用ggplot或base来生成类似于以下内容:

我知道如何使用ggplot2进行直方图处理,并且可以使用facet_grid或facet_wrap轻松地将它们分开。但我想“交错”他们垂直,使他们有一些重叠,如下所示。对不起,我不允许张贴自己的照片,很难找到一个简单的图片,我想要什么。如果可以的话,我只会张贴左上角面板。
我知道这不是一种显示数据的特别好的方式--但这个决定并不取决于我。
样本数据集如下:
my.data <- as.data.frame(rbind( cbind( rnorm(1e3), 1) , cbind( rnorm(1e3)+2, 2), cbind( rnorm(1e3)+3, 3), cbind( rnorm(1e3)+4, 4)))我可以用geom_histogram绘制如下图:
ggplot(my.data) + geom_histogram(aes(x=V1,fill=as.factor(V2))) + facet_grid( V2~.)但我想要y轴重叠。
发布于 2014-05-26 14:53:35
require(ggplot2)
require(plyr)
my.data <- as.data.frame(rbind( cbind( rnorm(1e3), 1) , cbind( rnorm(1e3)+2, 2), cbind( rnorm(1e3)+3, 3), cbind( rnorm(1e3)+4, 4)))
my.data$V2=as.factor(my.data$V2)基于V2的密度计算
res <- dlply(my.data, .(V2), function(x) density(x$V1))
dd <- ldply(res, function(z){
data.frame(Values = z[["x"]],
V1_density = z[["y"]],
V1_count = z[["y"]]*z[["n"]])
})根据V2添加偏移量
dd$offest=-as.numeric(dd$V2)*0.2 # adapt the 0.2 value as you need
dd$V1_density_offest=dd$V1_density+dd$offest和情节
ggplot(dd, aes(Values, V1_density_offest, color=V2)) +
geom_line()+
geom_ribbon(aes(Values, ymin=offest,ymax=V1_density_offest, fill=V2),alpha=0.3)+
scale_y_continuous(breaks=NULL)

发布于 2014-05-25 05:27:59
densityplot()来自生物导体flowViz封装是一种可选择的堆叠密度。
出发地:http://www.bioconductor.org/packages/release/bioc/manuals/flowViz/man/flowViz.pdf:
对于flowSets,其思想是将flowSet中所有帧的密度估计图水平堆叠成一个或几个flow参数。在后一种情况下,每个参数将被绘制在一个单独的面板中,即我们对参数的隐含条件。
您可以在这里看到示例可视化:http://www.bioconductor.org/packages/release/bioc/vignettes/flowViz/inst/doc/filters.html
source("http://bioconductor.org/biocLite.R")
biocLite("flowViz")发布于 2018-10-09 08:37:36
使用ggridges包:
ggplot(my.data, aes(x = V1, y = factor(V2), fill = factor(V2), color = factor(V2))) +
geom_density_ridges(alpha = 0.5)

https://stackoverflow.com/questions/23852212
复制相似问题