gpt4 book ai didi

r - 如何使用 'facet' 在 GGPLOT 中创建多个密度图

转载 作者:行者123 更新时间:2023-12-03 23:30:13 30 4
gpt4 key购买 nike

我即时创建了以下数据:

 > df <- data.frame( cbind(rnorm(200),rnorm(200, mean=.8),rnorm(200, mean=.9),rnorm(200, mean=1),rnorm(200, mean=.2),rnorm(200, mean=.3)),rnorm(200, mean=4),rnorm(200, mean=.5))
> colnames(df) <- c("w.cancer","w.normal","x.cancer","x.normal","y.cancer","y.normal","z.cancer","z.normal")
> df_log<-log2(df) # ignore the warning with NA
> head(df_log)

我想要做的是使用“facet”在一个面板中创建多个绘图,如下面的草图。
我该怎么办?

enter image description here

最佳答案

您必须先准备好数据。我已经在您的 data.frame df 上说明了这一点因为它是一个适当的正态分布。

require(ggplot2)
require(reshape2)
df$id <- 1:nrow(df)

df.m <- melt(df, "id")
df.m$grp1 <- factor(gsub("\\..*$", "", df.m$variable))
df.m$grp2 <- factor(gsub(".*\\.", "", df.m$variable))

p <- ggplot(data = df.m, aes(x=value)) + geom_density(aes(fill=grp2), alpha = 0.4)
p <- p + facet_wrap( ~ grp1)
p + scale_fill_brewer(palette = "Set1")

ggplot2_facet_example

通过替换 df 做同样的事情与 df_log你会得到这样的东西:
require(ggplot2)
require(reshape2)
df_log$id <- 1:nrow(df_log)

df.m <- melt(df_log, "id")
df.m$grp1 <- factor(gsub("\\..*$", "", df.m$variable))
df.m$grp2 <- factor(gsub(".*\\.", "", df.m$variable))

p <- ggplot(data = df.m, aes(x=value)) + geom_density(aes(fill=grp2), alpha = 0.5)
p <- p + facet_wrap( ~ grp1)
p

ggplog2_facet_log

关于r - 如何使用 'facet' 在 GGPLOT 中创建多个密度图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14623348/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com