stan-dev/bayesplot

mcmc_areas_ridges don't overlay when using scale_y_discrete

Open

#287 aperta il 2 ago 2022

Vedi su GitHub
 (4 commenti) (0 reazioni) (1 assegnatario)R (93 fork)github user discovery
good first issue

Metriche repository

Star
 (439 star)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

Hi,

First - thanks to all developers for creating such a useful plotting package.

I have come across a bug in mcmc_areas_ridges recently, which means that the density plots created in mcmc_areas_ridges don't overlay properly when used in conjunction with scale_y_discrete. I think this worked in the past, since I was reusing code from an earlier project which didn't have this problem - although I can't be sure.

Here is what the plot looks like without using scale_y_discrete image

And here is the same plot, using scale_y_discrete to reorder the categories in the y axis image

here is a working example:

library(bayesplot)

n = 100

posterior = 
  data.frame(x = rnorm(n),
             y = rnorm(n),
             z = rnorm(n),
             a = rnorm(n))

# Overlay works properly
mcmc_areas_ridges(posterior, prob = 0.89,
                  pars = c("x", "y", "z"))

# Use scale_y_discrete to reorder y axis means overlapping fails
mcmc_areas_ridges(posterior, prob = 0.89,
                  pars = c("x", "y", "z")) + 
  scale_y_discrete(labels = c("z", "y", "x"))

# Don't reorder, but still use scale_y_discrete - overlapping fails
mcmc_areas_ridges(posterior, prob = 0.89,
                  pars = c("x", "y", "z")) + 
  scale_y_discrete(labels = c("x", "y", "z"))

# final test that should do nothing
mcmc_areas_ridges(posterior, prob = 0.89) + 
  scale_y_discrete(labels = c("z", "y", "x", "a"))

Guida contributor