Search code examples
rlinemeanstripchart

How can I create a stripchart with mean represented as a short line instead of dot in R?


I would like to create a stripchart that looks like this:

enter image description here

But I was only able to create something similar using stat_summary crossbar:

ggplot(data, aes(x=variable, y=value)) + 
stat_summary(fun.data="mean_sdl", fun.args = list(mult=1), geom="crossbar", width=0.5) +
geom_jitter(position=position_jitter(0.2))

The result is this:

enter image description here

I would be grateful for any advice on how to modify the code so I can get a graph like in the first image.


Solution

  • You can use the beeswarm package:

    library (beeswarm)
    
    beeswarm(len ~ dose, data = ToothGrowth, 
        col = 4, pch = 16,
        main = 'beeswarm + bxplot')
      bxplot(len ~ dose, data = ToothGrowth, add = TRUE)
    

    enter image description here