我喜欢编写一个函数,它全局设置特定主题选项并缩放ggplot对象的美学,与ggthemr-package相当。
我可以使用以下代码片段修改主题选项:
sjtheme <- theme_grey() +
theme(axis.text.x = element_text(angle=axis.angle.x, size=rel(axis.size.x), colour=axis.color.x),
axis.text.y = element_text(angle=axis.angle.y, size=rel(axis.size.y), colour=axis.color.y),
axis.title = element_text(size=rel(axis.title.size), colour=axis.title.color),
axis.ticks = element_line(colour=axis.ticks.color),
axis.ticks.length = unit(axis.ticks.length, "cm"),
plot.title = element_text(size=rel(title.size), colour=title.color),
plot.background = element_rect(colour=plot.bordercol, fill=plot.backgroundcol),
panel.background = element_rect(colour=panel.bordercol, fill=panel.backcol),
panel.grid.minor = element_line(colour=panel.minor.gridcol),
panel.grid.major = element_line(colour=panel.major.gridcol))
theme_set(sjtheme)
geom默认值可以更改,例如与
update_geom_defaults('boxplot', list(fill = geom.colors, alpha = geom.alpha, outlier.colour = geom.colors))
现在这两个都很好用,所以每当我创建一个ggplot对象时,都会应用我的主题和geom选项。
但是如何使用比例尺进行此操作,因此条形/点/线条颜色也会获得新的默认值?
ggthemr-package中有一个解决方案:https://github.com/cttobin/ggthemr/blob/master/R/theme_scales.R
但是,此方法会修改全局环境,这会违反CRAN提交策略。我通过网络搜索发现的所有建议都不起作用,例如“set_scale_defaults”(已在较新的ggplot版本中删除)或this posting或this posting。
那么,是否有可能更改不会改变用户全局环境的比例默认值?
答案 0 :(得分:2)
您可以简单地重新定义相关比例,
scale_colour_discrete <- function(...)
scale_colour_brewer(..., palette="Set1")