How to use 'facet' to create multiple density plot in GGPLOT How to use 'facet' to create multiple density plot in GGPLOT r r

How to use 'facet' to create multiple density plot in GGPLOT


You'll have to prepare your data first. I've illustrated this on your data.frame df as it is a proper normal distribution.

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

Doing the same by replacing df with df_log you'd get something like this:

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