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")
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