Use facet_grid option to plot column of dataframe

2019-06-04 00:52发布

问题:

I get some result from simulation, and i want to make a facetting like this diagram below, and i don't know if it's possible to make this with ggplot2 and the facet_grid option.

My result for simulations have this "simplified" form, one line by simulation :

dat <- read.table(textConnection("P1 P2 P3 P4 R 
1 2e-5 1.0 0.6 3 1
2 4e-6 1.5 0.7 1.5 2
3 6e-7 1.2 0.6 2.5 3 
4 8e-8 1.45  0.65 3.2 4
"))

And here you can see the simplified graphic i want to produce with ggplot2 and facet_grid

I have one facet/graph by parameter, with different scale corresponding to min/max values for each of my parameter... You can also see on this graphic the color correspondance to localize each simulation in parameter space.

Thanks a lot for help

SR.

回答1:

Here is a start:

library(plyr)
library(ggplot2)
dat.melt <- melt(data, id.vars='R')

ggplot(dat.melt, aes(x=0, y=value)) +
    geom_boxplot() +
    geom_point(aes(colour=factor(R))) +
    facet_wrap(~variable, ncol=1, scales='free') +
    coord_flip()

Plenty of other tweaks, but the gist is there. Usually a good first step is to melt the data long and then start fiddling. As a side note, its a good idea to avoid using data for a variable name since its a built in function.