Short summary of the problem
I had a question when I plotting brms fit
code_to_run_your_model(if_applicable)
fit_openness<brm(formula=openness~canopy*date+(1plot),

family = gaussian(link="identity"),

data=a,

seed=1,

prior=c(set_prior("",class="Intercept"),

set_prior("",class="sigma")),

chains=4,

iter=5000,

warmup=2000,

thin=1,

control = list(adapt_delta=0.97,max_treedepth = 15,stepsize=0.001)
fit<conditional_effects(fit_openness,effect=â€śdate:canopyâ€ť,re_formula = NA)
plot(fit,points=T)
then I got a figure like this
question.pdf (19.8 KB)
I want to adjust the interval between the red points and blue points, and maybe do other adjustments just like theme, font, etc. How can I do this?
thank you very much!
Ax3man
#2
A reproducible example:
library(brms)
mtcars2 < mtcars; mtcars2$cyl < factor(mtcars$cyl); mtcars2$am < factor(mtcars2$am)
model < brm(qsec ~ cyl*am, data = mtcars2, chains = 1, backend = 'cmdstanr')
cond < conditional_effects(model, effect = 'cyl:am')
(p < plot(cond, points=T))
These plots that brms
produces are returned in a list:
class(p)
# [1] "list"
But each list entry is just a ggplot
object:
class(p[[1]])
# [1] "gg" "ggplot"
Theme adjustments etc. are easy enough, you can add things to these plots:
p[[1]] + theme_minimal()
To make more involved changes, itâ€™s probably easier to make your own plot instead. You can still use the conditional_effects
output, e.g. like so:
est < as.data.frame(cond[[1]])
ggplot() +
geom_point(
aes(cyl, qsec, color = am),
mtcars2
) +
geom_pointrange(
aes(cyl, estimate__, ymin = lower__, ymax = upper__, color = am),
est,
position = position_dodge(width = 1)
) +
theme_minimal()
2 Likes
Mr.Ax3man
My problem was solved perfectly by your methods,
now I can adjust the brms data just like I adjust a normal ggplot2 data.
Thank you very much!
1 Like