Description
All themes miss some elements in their definitions (i.e., elements are implicitly set to NULL
rather than explicitly set to NULL
). I think all themes provided by ggplot2 should explicitly define all elements. This will become more important if we want to allow extensible themes (#2540, #2784), because we'll have to distinguish between elements a theme knows about but wants to be NULL
and elements a theme doesn't know about that need to be filled in from the theme defaults. Missing element definitions also have led to unexpected problems in the past, e.g. #2724.
Elements that I notice are missing:
- In all themes: some of
panel.grid
,panel.grid.major
,panel.grid.minor
,panel.grid.major.x
,panel.grid.minor.x
,panel.grid.major.y
,panel.grid.minor.y
- In
theme_void()
: Too many to list, including parts ofaxis.*
,legend.*
,panel.*
,strip.*
,plot.background
.
As an aside, we should recommend as a general practice to external theme developers that they always start with an existing ggplot2 theme and then just modify the parts they want to change, just like we do in most cases:
Lines 247 to 267 in 6f5ffea