This function takes a theme and completes it so that it can be used downstream to render theme elements. Missing elements are filled in and every item is validated to the specifications of the element tree.
Usage
complete_theme(theme = NULL, default = theme_get())
Value
A theme object.
Examples
my_theme <- theme(line = element_line(colour = "red"))
complete_theme(my_theme)
#> List of 139
#> $ line :List of 7
#> ..$ colour : chr "red"
#> ..$ linewidth : num 0.5
#> ..$ linetype : num 1
#> ..$ lineend : chr "butt"
#> ..$ arrow : logi FALSE
#> ..$ arrow.fill : chr "red"
#> ..$ inherit.blank: logi FALSE
#> ..- attr(*, "class")= chr [1:2] "element_line" "element"
#> $ rect :List of 5
#> ..$ fill : chr "white"
#> ..$ colour : chr "black"
#> ..$ linewidth : num 0.5
#> ..$ linetype : num 1
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_rect" "element"
#> $ text :List of 11
#> ..$ family : chr ""
#> ..$ face : chr "plain"
#> ..$ colour : chr "black"
#> ..$ size : num 11
#> ..$ hjust : num 0.5
#> ..$ vjust : num 0.5
#> ..$ angle : num 0
#> ..$ lineheight : num 0.9
#> ..$ margin : 'margin' num [1:4] 0points 0points 0points 0points
#> .. ..- attr(*, "unit")= int 8
#> ..$ debug : logi FALSE
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_text" "element"
#> $ title :List of 11
#> ..$ family : NULL
#> ..$ face : NULL
#> ..$ colour : NULL
#> ..$ size : NULL
#> ..$ hjust : NULL
#> ..$ vjust : NULL
#> ..$ angle : NULL
#> ..$ lineheight : NULL
#> ..$ margin : NULL
#> ..$ debug : NULL
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_text" "element"
#> $ geom :List of 12
#> ..$ ink : chr "black"
#> ..$ paper : chr "white"
#> ..$ accent : chr "#3366FF"
#> ..$ linewidth : num 0.5
#> ..$ borderwidth : num 0.5
#> ..$ linetype : int 1
#> ..$ bordertype : int 1
#> ..$ family : chr ""
#> ..$ fontsize : num 3.87
#> ..$ pointsize : num 1.5
#> ..$ pointshape : num 19
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_geom" "element"
#> $ spacing : 'simpleUnit' num 5.5points
#> ..- attr(*, "unit")= int 8
#> $ margins : 'margin' num [1:4] 5.5points 5.5points 5.5points 5.5points
#> ..- attr(*, "unit")= int 8
#> $ aspect.ratio : NULL
#> $ axis.title : NULL
#> $ axis.title.x :List of 11
#> ..$ family : NULL
#> ..$ face : NULL
#> ..$ colour : NULL
#> ..$ size : NULL
#> ..$ hjust : NULL
#> ..$ vjust : num 1
#> ..$ angle : NULL
#> ..$ lineheight : NULL
#> ..$ margin : 'margin' num [1:4] 2.75points 0points 0points 0points
#> .. ..- attr(*, "unit")= int 8
#> ..$ debug : NULL
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_text" "element"
#> $ axis.title.x.top :List of 11
#> ..$ family : NULL
#> ..$ face : NULL
#> ..$ colour : NULL
#> ..$ size : NULL
#> ..$ hjust : NULL
#> ..$ vjust : num 0
#> ..$ angle : NULL
#> ..$ lineheight : NULL
#> ..$ margin : 'margin' num [1:4] 0points 0points 2.75points 0points
#> .. ..- attr(*, "unit")= int 8
#> ..$ debug : NULL
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_text" "element"
#> $ axis.title.x.bottom : NULL
#> $ axis.title.y :List of 11
#> ..$ family : NULL
#> ..$ face : NULL
#> ..$ colour : NULL
#> ..$ size : NULL
#> ..$ hjust : NULL
#> ..$ vjust : num 1
#> ..$ angle : num 90
#> ..$ lineheight : NULL
#> ..$ margin : 'margin' num [1:4] 0points 2.75points 0points 0points
#> .. ..- attr(*, "unit")= int 8
#> ..$ debug : NULL
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_text" "element"
#> $ axis.title.y.left : NULL
#> $ axis.title.y.right :List of 11
#> ..$ family : NULL
#> ..$ face : NULL
#> ..$ colour : NULL
#> ..$ size : NULL
#> ..$ hjust : NULL
#> ..$ vjust : num 1
#> ..$ angle : num -90
#> ..$ lineheight : NULL
#> ..$ margin : 'margin' num [1:4] 0points 0points 0points 2.75points
#> .. ..- attr(*, "unit")= int 8
#> ..$ debug : NULL
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_text" "element"
#> $ axis.text :List of 11
#> ..$ family : NULL
#> ..$ face : NULL
#> ..$ colour : chr "#4D4D4DFF"
#> ..$ size : 'rel' num 0.8
#> ..$ hjust : NULL
#> ..$ vjust : NULL
#> ..$ angle : NULL
#> ..$ lineheight : NULL
#> ..$ margin : NULL
#> ..$ debug : NULL
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_text" "element"
#> $ axis.text.x :List of 11
#> ..$ family : NULL
#> ..$ face : NULL
#> ..$ colour : NULL
#> ..$ size : NULL
#> ..$ hjust : NULL
#> ..$ vjust : num 1
#> ..$ angle : NULL
#> ..$ lineheight : NULL
#> ..$ margin : 'margin' num [1:4] 2.2points 0points 0points 0points
#> .. ..- attr(*, "unit")= int 8
#> ..$ debug : NULL
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_text" "element"
#> $ axis.text.x.top :List of 11
#> ..$ family : NULL
#> ..$ face : NULL
#> ..$ colour : NULL
#> ..$ size : NULL
#> ..$ hjust : NULL
#> ..$ vjust : num 0
#> ..$ angle : NULL
#> ..$ lineheight : NULL
#> ..$ margin : 'margin' num [1:4] 0points 0points 2.2points 0points
#> .. ..- attr(*, "unit")= int 8
#> ..$ debug : NULL
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_text" "element"
#> $ axis.text.x.bottom : NULL
#> $ axis.text.y :List of 11
#> ..$ family : NULL
#> ..$ face : NULL
#> ..$ colour : NULL
#> ..$ size : NULL
#> ..$ hjust : num 1
#> ..$ vjust : NULL
#> ..$ angle : NULL
#> ..$ lineheight : NULL
#> ..$ margin : 'margin' num [1:4] 0points 2.2points 0points 0points
#> .. ..- attr(*, "unit")= int 8
#> ..$ debug : NULL
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_text" "element"
#> $ axis.text.y.left : NULL
#> $ axis.text.y.right :List of 11
#> ..$ family : NULL
#> ..$ face : NULL
#> ..$ colour : NULL
#> ..$ size : NULL
#> ..$ hjust : num 0
#> ..$ vjust : NULL
#> ..$ angle : NULL
#> ..$ lineheight : NULL
#> ..$ margin : 'margin' num [1:4] 0points 0points 0points 2.2points
#> .. ..- attr(*, "unit")= int 8
#> ..$ debug : NULL
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_text" "element"
#> $ axis.text.theta : NULL
#> $ axis.text.r :List of 11
#> ..$ family : NULL
#> ..$ face : NULL
#> ..$ colour : NULL
#> ..$ size : NULL
#> ..$ hjust : num 0.5
#> ..$ vjust : NULL
#> ..$ angle : NULL
#> ..$ lineheight : NULL
#> ..$ margin : 'margin' num [1:4] 0points 2.2points 0points 2.2points
#> .. ..- attr(*, "unit")= int 8
#> ..$ debug : NULL
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_text" "element"
#> $ axis.ticks :List of 7
#> ..$ colour : chr "#333333FF"
#> ..$ linewidth : NULL
#> ..$ linetype : NULL
#> ..$ lineend : NULL
#> ..$ arrow : logi FALSE
#> ..$ arrow.fill : chr "#333333FF"
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_line" "element"
#> $ axis.ticks.x : NULL
#> $ axis.ticks.x.top : NULL
#> $ axis.ticks.x.bottom : NULL
#> $ axis.ticks.y : NULL
#> $ axis.ticks.y.left : NULL
#> $ axis.ticks.y.right : NULL
#> $ axis.ticks.theta : NULL
#> $ axis.ticks.r : NULL
#> $ axis.minor.ticks.x.top : NULL
#> $ axis.minor.ticks.x.bottom : NULL
#> $ axis.minor.ticks.y.left : NULL
#> $ axis.minor.ticks.y.right : NULL
#> $ axis.minor.ticks.theta : NULL
#> $ axis.minor.ticks.r : NULL
#> $ axis.ticks.length : 'rel' num 0.5
#> $ axis.ticks.length.x : NULL
#> $ axis.ticks.length.x.top : NULL
#> $ axis.ticks.length.x.bottom : NULL
#> $ axis.ticks.length.y : NULL
#> $ axis.ticks.length.y.left : NULL
#> $ axis.ticks.length.y.right : NULL
#> $ axis.ticks.length.theta : NULL
#> $ axis.ticks.length.r : NULL
#> $ axis.minor.ticks.length : 'rel' num 0.75
#> $ axis.minor.ticks.length.x : NULL
#> $ axis.minor.ticks.length.x.top : NULL
#> $ axis.minor.ticks.length.x.bottom: NULL
#> $ axis.minor.ticks.length.y : NULL
#> $ axis.minor.ticks.length.y.left : NULL
#> $ axis.minor.ticks.length.y.right : NULL
#> $ axis.minor.ticks.length.theta : NULL
#> $ axis.minor.ticks.length.r : NULL
#> $ axis.line : list()
#> ..- attr(*, "class")= chr [1:2] "element_blank" "element"
#> $ axis.line.x : NULL
#> $ axis.line.x.top : NULL
#> $ axis.line.x.bottom : NULL
#> $ axis.line.y : NULL
#> $ axis.line.y.left : NULL
#> $ axis.line.y.right : NULL
#> $ axis.line.theta : NULL
#> $ axis.line.r : NULL
#> $ legend.background :List of 5
#> ..$ fill : NULL
#> ..$ colour : logi NA
#> ..$ linewidth : NULL
#> ..$ linetype : NULL
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_rect" "element"
#> $ legend.margin : NULL
#> $ legend.spacing : 'rel' num 2
#> $ legend.spacing.x : NULL
#> $ legend.spacing.y : NULL
#> $ legend.key : NULL
#> $ legend.key.size : 'simpleUnit' num 1.2lines
#> ..- attr(*, "unit")= int 3
#> $ legend.key.height : NULL
#> $ legend.key.width : NULL
#> $ legend.key.spacing : NULL
#> $ legend.key.spacing.x : NULL
#> $ legend.key.spacing.y : NULL
#> $ legend.frame : NULL
#> $ legend.ticks : NULL
#> $ legend.ticks.length : 'rel' num 0.2
#> $ legend.axis.line : NULL
#> $ legend.text :List of 11
#> ..$ family : NULL
#> ..$ face : NULL
#> ..$ colour : NULL
#> ..$ size : 'rel' num 0.8
#> ..$ hjust : NULL
#> ..$ vjust : NULL
#> ..$ angle : NULL
#> ..$ lineheight : NULL
#> ..$ margin : NULL
#> ..$ debug : NULL
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_text" "element"
#> $ legend.text.position : NULL
#> $ legend.title :List of 11
#> ..$ family : NULL
#> ..$ face : NULL
#> ..$ colour : NULL
#> ..$ size : NULL
#> ..$ hjust : num 0
#> ..$ vjust : NULL
#> ..$ angle : NULL
#> ..$ lineheight : NULL
#> ..$ margin : NULL
#> ..$ debug : NULL
#> ..$ inherit.blank: logi TRUE
#> ..- attr(*, "class")= chr [1:2] "element_text" "element"
#> $ legend.title.position : NULL
#> $ legend.position : chr "right"
#> $ legend.position.inside : NULL
#> $ legend.direction : NULL
#> $ legend.byrow : NULL
#> $ legend.justification : chr "center"
#> $ legend.justification.top : NULL
#> $ legend.justification.bottom : NULL
#> $ legend.justification.left : NULL
#> $ legend.justification.right : NULL
#> $ legend.justification.inside : NULL
#> $ legend.location : NULL
#> $ legend.box : NULL
#> $ legend.box.just : NULL
#> [list output truncated]
#> - attr(*, "class")= chr [1:2] "theme" "gg"
#> - attr(*, "complete")= logi TRUE
#> - attr(*, "validate")= logi FALSE