如何在ggplot2主题(ggtheme)中设置默认行大小?

时间:2018-11-21 18:12:33

标签: r ggplot2

我分叉了ggthemes git repo来制作自己的自定义主题。我已经弄清楚怎么做几乎所有我需要的东西,但是挂了一个电话。

我专门尝试在ggtheme中为size设置默认的geom_line()

我现在在哪里,我必须做这样的事情:

economics %>%
    ggplot(aes(date, uempmed)) +
    geom_line(size = 1.75) +
    theme_mycustomtheme()

当我只想这样做时:

economics %>%
    ggplot(aes(date, uempmed)) +
    geom_line() +
    theme_mycustomtheme() # this would set the line size automatically

我已经这样编辑了mycustomtheme.R文件:

theme(
    # Elements in this first block aren't used directly, but are inherited
    # by others
    line =               element_line(
      color = "black", size = 1.75,
      linetype = 1, lineend = "butt"
    )

请注意,现在如何将大小设置为1.75。但是当我在实践中称呼主题时,似乎并没有什么不同。

对于我可能做错了什么,我将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:3)

主题不影响几何图形中的线,仅影响轴,网格线等中的线。但是,您可以使用update_geom_defaults()更改几何图形的默认外观。

#specify geom to update, and list attibutes you want to change appearance of
update_geom_defaults("line", list(size = 1.75))

#now your graph will plot with the line size you defined as default
economics %>%
  ggplot(aes(date, uempmed)) +
  geom_line() 

如果将update_geom_defaults("line", list(size = 1.75))添加到存储自定义主题的文件中,则source() mycustomtheme.r文件时,geom默认值也会更新,并且将获得所需的线型。请注意,以这种方式设置默认设置仅会更改指定的精确几何图形(line,而不会影响其他几何图形中的线元素(箱线边框,误差线等),因此您需要为每个几何图形定义默认几何图形您计划使用的单个几何。