I have written a function that sets up a ggplot plot. I would like to allow the user to set a theme of their choosing through an argument in the function call (I have named it themeToUse !) However, I cannot see how make this work. Using theme_set("theme_bw()")
inside the function doesn't work, nor does theme_set(get("theme_bw()"))
Clearly I don't understand anything like enough about themes and I admit that passing variable names is a bit of a dark art to me and I know that every time I need to do things like that I have to search around but searching the internet for this hasn't worked for me. I suspect someone out there knows the answer and that it's trivially easy. TIA! Chris
Here is an example of what I think you want to do.
library(ggplot2)
DF <- data.frame(A = 1:4, B = 2:5)
Gplot <- function(themeToUse = theme_bw()) {
ggplot(DF, aes(A, B)) + geom_point() + themeToUse
}
Plt <- Gplot(themeToUse = theme_dark())
Plt
Plt <- Gplot(themeToUse = theme_gray())
Plt
Oh how embarrassing!! It didn't occur to me that a simple unquoted passing was all I needed. I guess I should have realised that themes are just lists so this would work. I can confirm, of course, that using theme_set(themeToUse)
also works to invoke the theme but I will use + themeToUse
: simpler. Thanks FJCC (love the profile picture!) Chris
This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.
If you have a query related to it or one of the replies, start a new topic and refer back with a link.