Skip to content

Forthcoming release of ggplot2 and jcolors #2

Closed
@paleolimbot

Description

@paleolimbot

We're in the process of preparing a ggplot2 release. As part of the release process, we run the R CMD check on packages that use ggplot2 to make sure we don't accidentally break code for downstream packages.

In running the R CMD check on jcolors, we identified the following issue:

  • checking examples ... ERROR
    Running examples in ‘jcolors-Ex.R’ failed
    The error most likely occurred in:
    
    > ### Name: theme_dark_bg
    > ### Title: minimal theme for dark backgrounds
    > ### Aliases: theme_dark_bg theme_light_bg
    > 
    > ### ** Examples
    > 
    > library(ggplot2)
    > 
    > p <- ggplot(mtcars) + geom_point(aes(x = wt, y = mpg,
    +          colour = factor(gear))) + facet_grid(vs~am)
    > p + theme_dark_bg()
    Error in axis.ticks.length.x.bottom %||% axis.ticks.length.x : 
      object 'axis.ticks.length.x.bottom' not found
    Calls: <Anonymous> ... with -> with.default -> eval -> eval -> %||% -> %||%
    Execution halted
    

As part of the new release, we improved the theme() function to allow different lengths of ticks on the top and bottom of the plot. As a result, theme_dark_bg_base() in jcolors is no longer complete, as it does not inherit from a current ggplot2 theme (like theme_grey()). We recommend using code like the following to define new themes, so that we can continue to improve the ggplot2 theme system without breaking others' code:

theme_custom <- function(base_size = 11, base_family = "", 
                         base_line_size = base_size/22, base_rect_size = base_size/22) {
  # Starts with theme_grey and then modify some parts
  ggplot2::theme_grey(
    base_size = base_size,
    base_family = base_family,
    base_line_size = base_line_size,
    base_rect_size = base_rect_size
  ) %+replace%
    ggplot2::theme(
      # insert your custom theme elements here
    )
}

For this to work, you will have to import %+replace% into your package namespace, which you can do by adding the following line to any roxygen documentation block:

#' @importFrom ggplot2 %+replace%

Let us know if we can help! We are hoping to release the next version of ggplot2 in the next two weeks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions