Mikata-Project / ggthemr

Themes for ggplot2.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Change colors without set theme

Adrian-AlvarezMolina opened this issue · comments

Hi, first of all congrats for the amazing package and themes !

Following the examples I achieve to change the theme of a ggplot2 object following your instructions in the last part

Next line set the theme

dust_theme <- ggthemr(palette = "dust", set_theme = FALSE)

Next line pass the theme object from dust_theme to example_plot, works fine for me

example_plot + dust_theme$theme

Here's come the issue, when I try to pass also the colors for the scale to the plot

example_plot + dust_theme$theme + dust_theme$scales$scale_fill_discrete()
warning: attempt to apply non-function

The colors doesn't change, and there's nothing in the object dust_theme referred to scales
dust_theme$scales = NULL
dust_themes$scales$scale_fill_discrete

Any idea about why the colors don't change??.
I achieve to change colors if I type, but they are not so well adapted to the background

example_plot + dust_theme$theme +scale_fill_manual(values = dust_theme$palette$swatch)

Thanks for your time and help!

Hi @Adrian-AlvarezMolina,

I have recreated your issue, and can confirm that using the approach in the README doesn't work.

I also found that using the swatch is the only way to change the colours without changing the theme:

library(ggthemr)

dust_theme <- ggthemr(palette = "dust", set_theme = FALSE)

ggplot(mtcars, aes(mpg, cyl, color = factor(am))) +
    geom_point() +
    dust_theme$theme + 
    scale_color_manual(values = dust_theme$palette$swatch)

As to why the colours do not change, it appears as if the dust_theme$scales does not exist, as per your original comment. I've tracked narrowed it down to this commit from last year, which removed the scales element from the theme structure.

I'll make a pull request to update the readme as this part is no longer accurate.