R ggplot主题:仅带面的网格线
我正在尝试为我制作的普通情节创建一个自定义的转到主题。在这些图中,我希望仅当图是分面的时才包含网格线 例如,我在编写一些主题函数R ggplot主题:仅带面的网格线,r,ggplot2,R,Ggplot2,我正在尝试为我制作的普通情节创建一个自定义的转到主题。在这些图中,我希望仅当图是分面的时才包含网格线 例如,我在编写一些主题函数theme\u my()之后,如果我编写: library(ggplot2) theme_set(theme_my()) ggplot(mpg, aes(displ, hwy)) + geom_point() + facet_wrap(~class) ggplot(mpg, aes(displ, hwy)) + geom_point() 结果与实验结果一
theme\u my()
之后,如果我编写:
library(ggplot2)
theme_set(theme_my())
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
facet_wrap(~class)
ggplot(mpg, aes(displ, hwy)) +
geom_point()
结果与实验结果一致
library(ggplot2)
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
facet_wrap(~class)
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())
本质上,我想知道的是,如果绘图是分面的,是否可以在我的主题函数中包含一些内容,以便模板使用最后的
+主题(panel.grid.major…
调用。这可能吗?或者还有其他更好的方法吗?我不确定是否要将其自动化到一个主题中,但我所依赖的一个解决方法是保存一组我希望用于所有方面绘图的主题
指定,然后将其添加到绘图调用中。我倾向于将其用于面板.border
,但这个想法对您也适用
首先,设置一个没有网格线的主题:
theme_set(theme_minimal() +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())
)
这将给出如下图:
ggplot(mpg, aes(displ, hwy)) +
geom_point()
接下来,保存要为facet
绘图设置的主题
选项组:
facetSettings <-
theme(panel.grid.major = element_line("lightgray",0.5),
panel.grid.minor = element_line("lightgray",0.25))
这并不像将其直接构建到主题中那样方便,但它确实有一些优势。如果您想要在刻面外使用网格线的主题,您可以(例如,如果使用cowplot
构建自己的多面板)。如果您决定在一个实例中实际上不需要特殊的方面设置,则可以排除它们。最后,如果在一个实际的主题中可以做到这一点,那么几乎可以肯定的是,它将比这里需要的代码更多
(这就是说,如果有人有办法做到这一点,我肯定会感兴趣并确信我会找到利用它的方法。)这不是一种非常不方便的方法,而且绝对是一种合理的选择。但是,让我们看看是否还有其他建议!
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
facet_wrap(~class) +
facetSettings