1

I have data similar to the example below.

I am wanting to visualise the spread of the outcome variable (value) for each group (name). The fill aesthetic is the desired interval - the example below uses the interquartile range.

I would expect the position="identity" to stack the bars on top of each other for the fill aesthetic (as it does for geom_bar). This is the behaviour that I want.

When I try position="stack", it's a mess.

I have looked at the stat_binline examples and the ggridges vignette but neither have examples where the position is modified to stack the ridges (binned or not).

library(ggplot2)
library(ggridges)
set.seed(123)

size <- 1000
data.frame(
  name=sample(LETTERS[1:5], size=size, replace=T),
  value=c(sample(1:20, size=size*0.8, replace=T), rep(15, size*0.2))
) %>%
  group_by(name) %>%
  arrange(value) %>%
  mutate(percentile=row_number()/n()) %>%
  ungroup() %>%
  mutate(in_interval=percentile > 0.25 & percentile < 0.75)%>%
  ggplot(aes(x = value, y = name, height = stat(count), fill=in_interval)) +
  stat_binline(position = "identity", alpha=0.3, bins=20, scale=0.9) +
  coord_flip()

The overlap that I want to avoid is shown here. I want these bars to the stacked instead.

enter image description here

Thank you!

Rex Parsons
  • 199
  • 10

1 Answers1

2

I reviewed the ggridges docs - https://wilkelab.org/ggridges/reference/stat_binline.html

The ggplot position page - https://ggplot2.tidyverse.org/reference/position_stack.html

And a few of the great [ggridges] tagged answers on SO -

https://stackoverflow.com/a/58557352/10276092

Add color gradient to ridgelines according to height

And all I've produced is a non-ggridges answer:

df %>% 
  ggplot(aes(x=value, fill=in_interval)) +
  geom_histogram(bins=20) +      
  facet_grid(cols=vars(name)) +
  coord_flip()

enter image description here

M.Viking
  • 5,067
  • 4
  • 17
  • 33
  • 1
    Thanks @M.Viking! This will be my backup solution if I can't figure out the ggridges approach. I'd prefer the plots to be within the space rather than separate facets. – Rex Parsons Jun 01 '22 at 00:42
  • Did you figure the ggridges solution? I am having the same problem. – Sasha Jul 01 '22 at 00:13