├── .github ├── .gitignore └── workflows │ ├── pkgdown.yaml │ ├── test-coverage.yaml │ ├── R-CMD-check.yaml │ └── rhub.yaml ├── revdep ├── failures.md ├── problems.md ├── .gitignore ├── cran.md └── README.md ├── data ├── wings.rda └── ggprism_data.rda ├── man ├── figures │ ├── README-ex-1.png │ ├── README-ex-2.png │ ├── README-ex2-1.png │ ├── README-ex2-2.png │ ├── README-ex3-1.png │ ├── README-ex3-2.png │ ├── ggprism_logo.png │ ├── ggprism_prism.png │ └── ggprism_logo.R ├── ggprism_data.Rd ├── ggprism-ggproto.Rd ├── preview_theme.Rd ├── ggprism-package.Rd ├── wings.Rd ├── draw_prism_offset.Rd ├── prism_fill_pal.Rd ├── draw_prism_minor.Rd ├── draw_prism_offset_minor.Rd ├── prism_colour_pal.Rd ├── draw_prism_bracket.Rd ├── prism_shape_pal.Rd ├── theme_prism.Rd ├── guide_prism_offset.Rd └── guide_prism_bracket.Rd ├── vignettes └── web-only │ ├── figure_2B.png │ └── palettes.Rmd ├── tests └── tinytest.R ├── inst ├── examples │ ├── ex-preview_theme.R │ ├── ex-prism_fill_pal.R │ ├── ex-prism_colour_pal.R │ ├── ex-prism_shape_pal.R │ ├── ex-guide_prism_bracket.R │ ├── ex-guide_prism_offset.R │ ├── ex-theme_prism.R │ ├── ex-scale_fill_prism.R │ ├── ex-scale_colour_prism.R │ ├── ex-scale_shape_prism.R │ ├── ex-guide_prism_minor.R │ ├── ex-guide_prism_offset_minor.R │ └── ex-annotation_ticks.R └── tinytest │ ├── test-preview_theme.R │ ├── test-scale_fill_prism.R │ ├── test-scale_shape_prism.R │ ├── test-theme_prism.R │ ├── test-scale_colour_prism.R │ ├── test-utils.R │ ├── test-guide_prism_offset.R │ ├── test-guide_prism_minor.R │ ├── test-guide_prism_offset_minor.R │ ├── test-annotation_ticks.R │ └── test-guide_prism_bracket.R ├── R ├── ggprism_data.R ├── ggprism-package.R ├── scale_fill_prism.R ├── prism_fill_pal.R ├── scale_colour_prism.R ├── prism_colour_pal.R ├── wings.R ├── scale_shape_prism.R ├── prism_shape_pal.R ├── preview_theme.R └── guide_methods.R ├── data-raw ├── shapes │ ├── default.txt │ ├── filled.txt │ └── complete.txt ├── datasets.R ├── shape-palettes.R ├── themes.R ├── build.R ├── shape-palettes.yml ├── datasets │ └── wings.csv ├── fill-palettes.R ├── schemes │ ├── starry.txt │ ├── waves.txt │ ├── inferno.txt │ ├── magma.txt │ ├── viridis.txt │ ├── plasma.txt │ ├── colorblind_safe.txt │ ├── pearl.txt │ ├── black_and_white.txt │ ├── beer_and_ales.txt │ ├── evergreen.txt │ ├── warm_and_sunny.txt │ ├── office.txt │ ├── autumn_leaves.txt │ ├── the_blues.txt │ ├── shades_of_gray.txt │ ├── winter_bright.txt │ ├── candy_bright.txt │ ├── flames.txt │ ├── sunny_garden.txt │ ├── candy_soft.txt │ ├── fir.txt │ ├── stained_glass.txt │ ├── neon.txt │ ├── winter_soft.txt │ ├── spring.txt │ └── mustard_field.txt └── colour-palettes.R ├── .Rbuildignore ├── codecov.yml ├── ggprism.Rproj ├── .gitignore ├── cran-comments.md ├── _pkgdown.yml ├── DESCRIPTION ├── NEWS.md └── NAMESPACE /.github/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | -------------------------------------------------------------------------------- /revdep/failures.md: -------------------------------------------------------------------------------- 1 | *Wow, no problems at all. :)* -------------------------------------------------------------------------------- /revdep/problems.md: -------------------------------------------------------------------------------- 1 | *Wow, no problems at all. :)* -------------------------------------------------------------------------------- /data/wings.rda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csdaw/ggprism/HEAD/data/wings.rda -------------------------------------------------------------------------------- /data/ggprism_data.rda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csdaw/ggprism/HEAD/data/ggprism_data.rda -------------------------------------------------------------------------------- /man/figures/README-ex-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csdaw/ggprism/HEAD/man/figures/README-ex-1.png -------------------------------------------------------------------------------- /man/figures/README-ex-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csdaw/ggprism/HEAD/man/figures/README-ex-2.png -------------------------------------------------------------------------------- /man/figures/README-ex2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csdaw/ggprism/HEAD/man/figures/README-ex2-1.png -------------------------------------------------------------------------------- /man/figures/README-ex2-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csdaw/ggprism/HEAD/man/figures/README-ex2-2.png -------------------------------------------------------------------------------- /man/figures/README-ex3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csdaw/ggprism/HEAD/man/figures/README-ex3-1.png -------------------------------------------------------------------------------- /man/figures/README-ex3-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csdaw/ggprism/HEAD/man/figures/README-ex3-2.png -------------------------------------------------------------------------------- /man/figures/ggprism_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csdaw/ggprism/HEAD/man/figures/ggprism_logo.png -------------------------------------------------------------------------------- /man/figures/ggprism_prism.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csdaw/ggprism/HEAD/man/figures/ggprism_prism.png -------------------------------------------------------------------------------- /revdep/.gitignore: -------------------------------------------------------------------------------- 1 | checks 2 | library 3 | checks.noindex 4 | library.noindex 5 | data.sqlite 6 | *.html 7 | -------------------------------------------------------------------------------- /vignettes/web-only/figure_2B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csdaw/ggprism/HEAD/vignettes/web-only/figure_2B.png -------------------------------------------------------------------------------- /tests/tinytest.R: -------------------------------------------------------------------------------- 1 | 2 | if ( requireNamespace("tinytest", quietly=TRUE) ){ 3 | tinytest::test_package("ggprism") 4 | } 5 | 6 | -------------------------------------------------------------------------------- /inst/examples/ex-preview_theme.R: -------------------------------------------------------------------------------- 1 | library(ggplot2) 2 | 3 | ## see names of available themes 4 | names(ggprism_data$themes) 5 | 6 | ## preview a theme 7 | preview_theme("floral") 8 | -------------------------------------------------------------------------------- /R/ggprism_data.R: -------------------------------------------------------------------------------- 1 | #' Palettes and theme data for ggprism 2 | #' 3 | #' This list object contains the strings and values used in 4 | #' ggprism themes and palettes. 5 | "ggprism_data" 6 | -------------------------------------------------------------------------------- /data-raw/shapes/default.txt: -------------------------------------------------------------------------------- 1 | name pch 2 | circle small 16 3 | square 15 4 | triangle 17 5 | diamond 18 6 | asterisk 8 7 | plus 3 8 | cross 4 9 | circle plus 10 10 | square cross 7 11 | -------------------------------------------------------------------------------- /.Rbuildignore: -------------------------------------------------------------------------------- 1 | ^revdep$ 2 | ^data-raw$ 3 | ^dev$ 4 | ^ggprism\.Rproj$ 5 | ^README.Rmd$ 6 | ^\.Rproj\.user$ 7 | ^\.github$ 8 | ^codecov\.yml$ 9 | ^_pkgdown\.yml$ 10 | ^docs$ 11 | ^pkgdown$ 12 | ^cran-comments\.md$ 13 | -------------------------------------------------------------------------------- /revdep/cran.md: -------------------------------------------------------------------------------- 1 | ## revdepcheck results 2 | 3 | We checked 5 reverse dependencies, comparing R CMD check results across CRAN and dev versions of this package. 4 | 5 | * We saw 0 new problems 6 | * We failed to check 0 packages 7 | 8 | -------------------------------------------------------------------------------- /data-raw/shapes/filled.txt: -------------------------------------------------------------------------------- 1 | name pch 2 | circle filled 21 3 | square filled 22 4 | triangle filled 24 5 | triangle down filled 25 6 | diamond filled 23 7 | asterisk 8 8 | plus 3 9 | cross 4 10 | circle plus 10 11 | square cross 7 12 | -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | comment: false 2 | 3 | coverage: 4 | status: 5 | project: 6 | default: 7 | target: auto 8 | threshold: 1% 9 | informational: true 10 | patch: 11 | default: 12 | target: auto 13 | threshold: 1% 14 | informational: true 15 | -------------------------------------------------------------------------------- /data-raw/shapes/complete.txt: -------------------------------------------------------------------------------- 1 | name pch 2 | circle small 16 3 | square 15 4 | triangle 17 5 | diamond 18 6 | circle filled 21 7 | square filled 22 8 | triangle filled 24 9 | triangle down filled 25 10 | diamond filled 23 11 | asterisk 8 12 | plus 3 13 | cross 4 14 | circle plus 10 15 | square cross 7 -------------------------------------------------------------------------------- /man/figures/ggprism_logo.R: -------------------------------------------------------------------------------- 1 | library(hexSticker) 2 | 3 | sticker( 4 | subplot = "./man/figures/ggprism_prism.png", 5 | s_x=1, 6 | s_y=1, 7 | s_width=0.93, 8 | package="ggprism", 9 | p_size=7.6, 10 | p_y = 0.8, 11 | filename="man/figures/ggprism_logo.png", 12 | h_fill = "#000000", 13 | h_color = "#BFBFBF", 14 | dpi = 300 15 | ) 16 | -------------------------------------------------------------------------------- /man/ggprism_data.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/ggprism_data.R 3 | \docType{data} 4 | \name{ggprism_data} 5 | \alias{ggprism_data} 6 | \title{Palettes and theme data for ggprism} 7 | \format{ 8 | An object of class \code{list} of length 4. 9 | } 10 | \usage{ 11 | ggprism_data 12 | } 13 | \description{ 14 | This list object contains the strings and values used in 15 | ggprism themes and palettes. 16 | } 17 | \keyword{datasets} 18 | -------------------------------------------------------------------------------- /ggprism.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | ProjectId: 3f27e09b-a77e-4cfa-bbc9-cc137162de1d 3 | 4 | RestoreWorkspace: No 5 | SaveWorkspace: No 6 | AlwaysSaveHistory: Default 7 | 8 | EnableCodeIndexing: Yes 9 | UseSpacesForTab: Yes 10 | NumSpacesForTab: 2 11 | Encoding: UTF-8 12 | 13 | RnwWeave: Sweave 14 | LaTeX: pdfLaTeX 15 | 16 | AutoAppendNewline: Yes 17 | StripTrailingWhitespace: Yes 18 | 19 | BuildType: Package 20 | PackageInstallArgs: --no-multiarch --with-keep.source --no-manual 21 | PackageRoxygenize: rd,collate,namespace 22 | -------------------------------------------------------------------------------- /data-raw/datasets.R: -------------------------------------------------------------------------------- 1 | library(readr) 2 | library(tidyr) 3 | 4 | wings <- read_csv( 5 | "data-raw/datasets/wings.csv", 6 | col_types = 7 | list( 8 | sex = col_factor(c("male", "female")), 9 | genotype = col_factor(c("Tps1MIC/+", "Tps1MIC")) 10 | ) 11 | ) %>% 12 | pivot_longer(names_to = "measure", 13 | values_to = "percent.change", 14 | cols = c(wing.size, cell.size, cell.number), 15 | names_ptypes = list(measure = factor())) 16 | 17 | usethis::use_data(wings, overwrite = TRUE) 18 | -------------------------------------------------------------------------------- /vignettes/web-only/palettes.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "All `ggprism` Palettes" 3 | output: 4 | rmarkdown::html_vignette: 5 | fig_width: 6 6 | fig_height: 4 7 | vignette: > 8 | %\VignetteIndexEntry{All `ggprism` Palettes} 9 | %\VignetteEngine{knitr::rmarkdown} 10 | %\VignetteEncoding{UTF-8} 11 | --- 12 | 13 | ```{r setup, include=FALSE} 14 | library(ggplot2) 15 | library(ggprism) 16 | ``` 17 | 18 | ```{r, echo=FALSE} 19 | themes <- names(ggprism_data$themes)[-length(ggprism_data$themes)] 20 | 21 | for (i in themes) { 22 | print(preview_theme(i)) 23 | } 24 | ``` 25 | -------------------------------------------------------------------------------- /R/ggprism-package.R: -------------------------------------------------------------------------------- 1 | #' @keywords internal 2 | "_PACKAGE" 3 | 4 | #' @importFrom digest digest 5 | #' @import ggplot2 6 | #' @importFrom glue glue glue_collapse glue_data 7 | #' @importFrom grid gList gpar grid.draw grobHeight grobWidth gTree segmentsGrob 8 | #' textGrob unit unit.c viewport 9 | #' @importFrom gtable gtable_col gtable_height gtable_row gtable_width 10 | #' @importFrom rlang abort ensym exec is_bool warn := %||% !! 11 | #' @importFrom scales alpha manual_pal 12 | #' @importFrom stats setNames 13 | #' @importFrom tibble deframe 14 | #' @importFrom utils getFromNamespace packageVersion 15 | NULL 16 | -------------------------------------------------------------------------------- /inst/examples/ex-prism_fill_pal.R: -------------------------------------------------------------------------------- 1 | library(ggplot2) 2 | 3 | ## list all available fill palettes and their lengths 4 | lengths(ggprism_data$fill_palettes) 5 | 6 | ## select some colours from a palette 7 | prism_fill_pal(palette = "summer")(4) 8 | 9 | ## see all the colours in a specific palette 10 | # define a function for convenience 11 | library(scales) 12 | 13 | show_palette <- function(palette) { 14 | scales::show_col( 15 | prism_fill_pal(palette = palette)( 16 | attr(prism_fill_pal(palette = palette), "max_n") 17 | ) 18 | ) 19 | } 20 | 21 | # show the colours in the palette "pearl" 22 | show_palette("floral") 23 | -------------------------------------------------------------------------------- /inst/examples/ex-prism_colour_pal.R: -------------------------------------------------------------------------------- 1 | library(ggplot2) 2 | 3 | ## list all available colour palettes and their lengths 4 | lengths(ggprism_data$colour_palettes) 5 | 6 | ## select some colours from a palette 7 | prism_colour_pal(palette = "starry")(4) 8 | 9 | ## see all the colours in a specific palette 10 | # define a function for convenience 11 | library(scales) 12 | 13 | show_palette <- function(palette) { 14 | scales::show_col( 15 | prism_colour_pal(palette = palette)( 16 | attr(prism_colour_pal(palette = palette), "max_n") 17 | ) 18 | ) 19 | } 20 | 21 | # show the colours in the palette "pearl" 22 | show_palette("pearl") 23 | -------------------------------------------------------------------------------- /man/ggprism-ggproto.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/annotation_ticks.R, R/geom_bracket.R 3 | \docType{data} 4 | \name{GeomTicks} 5 | \alias{GeomTicks} 6 | \alias{StatBracket} 7 | \alias{GeomBracket} 8 | \title{ggproto classes for ggprism} 9 | \format{ 10 | An object of class \code{StatBracket} (inherits from \code{Stat}, \code{ggproto}, \code{gg}) of length 4. 11 | 12 | An object of class \code{GeomBracket} (inherits from \code{Geom}, \code{ggproto}, \code{gg}) of length 5. 13 | } 14 | \usage{ 15 | StatBracket 16 | 17 | GeomBracket 18 | } 19 | \description{ 20 | ggproto classes for ggprism 21 | } 22 | \keyword{internal} 23 | -------------------------------------------------------------------------------- /data-raw/shape-palettes.R: -------------------------------------------------------------------------------- 1 | # Make shapes YAML file 2 | library(readr) 3 | library(dplyr) 4 | library(stringr) 5 | library(purrr) 6 | library(here) 7 | 8 | shapes_dir <- "data-raw/shapes" 9 | 10 | shapes_files <- dir(shapes_dir, pattern = "\\.txt$", 11 | full.names = TRUE, recursive = TRUE) 12 | 13 | process_prism_shape <- function(path) { 14 | theme <- read_tsv(path, col_names = TRUE) 15 | } 16 | 17 | shape_palettes <- map(shapes_files, process_prism_shape) 18 | 19 | names(shape_palettes) <- tools::file_path_sans_ext(basename(shapes_files)) 20 | 21 | cat(yaml::as.yaml(shape_palettes, column.major = FALSE), 22 | file = here("data-raw", "shape-palettes.yml")) 23 | -------------------------------------------------------------------------------- /man/preview_theme.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/preview_theme.R 3 | \name{preview_theme} 4 | \alias{preview_theme} 5 | \title{Preview Prism themes} 6 | \usage{ 7 | preview_theme(palette) 8 | } 9 | \arguments{ 10 | \item{palette}{\code{string}. Palette name.} 11 | } 12 | \value{ 13 | Returns an object of class \emph{ggplot}. 14 | } 15 | \description{ 16 | Quickly generate a preview of a ggprism theme. 17 | See \code{names(ggprism_data$themes)} for valid palette names. 18 | } 19 | \examples{ 20 | library(ggplot2) 21 | 22 | ## see names of available themes 23 | names(ggprism_data$themes) 24 | 25 | ## preview a theme 26 | preview_theme("floral") 27 | } 28 | -------------------------------------------------------------------------------- /R/scale_fill_prism.R: -------------------------------------------------------------------------------- 1 | #' Prism fill scales (discrete) 2 | #' 3 | #' A collection of discrete fill scales that use palettes which mirror the 4 | #' colour schemes available in GraphPad Prism. 5 | #' 6 | #' @param palette `string`. Palette name, see 7 | #' `lengths(ggprism_data$fill_palettes)` 8 | #' for valid palette names. 9 | #' @inheritDotParams ggplot2::discrete_scale -aesthetics -scale_name 10 | #' 11 | #' @return Returns a ggproto object of class _ScaleDiscrete_ which works with 12 | #' _fill_ aesthetics. 13 | #' 14 | #' @example inst/examples/ex-scale_fill_prism.R 15 | #' 16 | #' @export 17 | scale_fill_prism <- function(palette = "colors", ...) { 18 | discrete_scale("fill", "prism", prism_fill_pal(palette = palette), ...) 19 | } 20 | -------------------------------------------------------------------------------- /inst/tinytest/test-preview_theme.R: -------------------------------------------------------------------------------- 1 | #### Setup --------------------------------------------------------------------- 2 | ## load libraries 3 | library(ggplot2) 4 | 5 | #### Tests --------------------------------------------------------------------- 6 | # test that preview_theme has correct class 7 | expect_equal(class(preview_theme), c("function")) 8 | 9 | # test that preview_theme works 10 | g <- preview_theme("floral") 11 | 12 | expect_silent(ggplotGrob(g)) 13 | 14 | #### Sanity checks ------------------------------------------------------------- 15 | # test that error occurs if palette does not exist 16 | expect_error(preview_theme(palette = "banana")) 17 | 18 | # test that error occurs if palette is "all_null" 19 | expect_error(preview_theme(palette = "all_null")) 20 | -------------------------------------------------------------------------------- /inst/examples/ex-prism_shape_pal.R: -------------------------------------------------------------------------------- 1 | library(ggplot2) 2 | 3 | ## list all available shape palettes 4 | ggprism_data$shape_palettes 5 | 6 | ## select some shapes from a palette 7 | prism_shape_pal(palette = "filled")(4) 8 | 9 | ## see all the shapes in a specific palette 10 | # define a function for convenience 11 | show_shapes <- function(palette) { 12 | df_shapes <- ggprism_data$shape_palettes[[palette]][, -1] 13 | df_shapes$pch_f <- factor(df_shapes$pch, levels = df_shapes$pch) 14 | 15 | ggplot(df_shapes, aes(x = 0, y = 0, shape = pch)) + 16 | geom_point(aes(shape = pch), size = 5, fill = 'red') + 17 | scale_shape_identity() + 18 | facet_wrap(~ pch_f) + 19 | theme_void() 20 | } 21 | 22 | # show the shapes in the palette "complete" 23 | show_shapes("complete") 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # MacOS files 2 | *.DS_Store 3 | 4 | # History files 5 | .Rhistory 6 | .Rapp.history 7 | 8 | # Session Data files 9 | .RData 10 | 11 | # User-specific files 12 | .Ruserdata 13 | 14 | # Example code in package build process 15 | *-Ex.R 16 | 17 | # Output files from R CMD build 18 | /*.tar.gz 19 | 20 | # Output files from R CMD check 21 | /*.Rcheck/ 22 | 23 | # RStudio files 24 | .Rproj.user/ 25 | 26 | # produced vignettes 27 | vignettes/*.html 28 | vignettes/*.pdf 29 | 30 | # OAuth2 token, see https://github.com/hadley/httr/releases/tag/v0.3 31 | .httr-oauth 32 | 33 | # knitr and R markdown default cache directories 34 | *_cache/ 35 | /cache/ 36 | 37 | # Temporary files created by R markdown 38 | *.utf8.md 39 | *.knit.md 40 | 41 | # R Environment Variables 42 | .Renviron 43 | .Rproj.user 44 | 45 | # Colour list files 46 | data-raw/schemes/**/*.clr 47 | docs 48 | -------------------------------------------------------------------------------- /R/prism_fill_pal.R: -------------------------------------------------------------------------------- 1 | #' Prism fill palettes 2 | #' 3 | #' A collection of fill palettes which mirror the 4 | #' colour schemes available in GraphPad Prism. 5 | #' 6 | #' @inheritParams scale_fill_prism 7 | #' @return Returns a function which takes a single integer as its only argument 8 | #' and returns a character vector of hexadecimal colours. 9 | #' See the examples below for usage. 10 | #' @example inst/examples/ex-prism_fill_pal.R 11 | #' @export 12 | prism_fill_pal <- function(palette = "colors") { 13 | allfills <- ggprism::ggprism_data$fill_palettes 14 | if (!palette %in% names(allfills)) { 15 | stop("The palette ", paste(palette), " does not exist. 16 | See lengths(ggprism_data$fill_palettes) for valid palette names.") 17 | } 18 | values <- unname(allfills[[palette]]) 19 | f <- manual_pal(values) 20 | attr(f, "max_n") <- length(values) 21 | f 22 | } 23 | -------------------------------------------------------------------------------- /R/scale_colour_prism.R: -------------------------------------------------------------------------------- 1 | #' Prism colour scales (discrete) 2 | #' 3 | #' A collection of discrete colour scales that use palettes which mirror the 4 | #' colour schemes available in GraphPad Prism. 5 | #' 6 | #' @param palette `string`. Palette name, use 7 | #' `lengths(ggprism_data$colour_palettes)` to show all valid palette names 8 | #' and their number of values each palette supports. 9 | #' @inheritDotParams ggplot2::discrete_scale -aesthetics -scale_name 10 | #' 11 | #' @return Returns a ggproto object of class _ScaleDiscrete_ which works with 12 | #' _colour_ aesthetics. 13 | #' 14 | #' @example inst/examples/ex-scale_colour_prism.R 15 | #' 16 | #' @export 17 | scale_colour_prism <- function(palette = "colors", ...) { 18 | discrete_scale("colour", "prism", prism_colour_pal(palette = palette), ...) 19 | } 20 | 21 | #' @rdname scale_colour_prism 22 | #' @export 23 | scale_color_prism <- scale_colour_prism 24 | -------------------------------------------------------------------------------- /cran-comments.md: -------------------------------------------------------------------------------- 1 | ## Test environments 2 | 3 | * MacOS local install (ARM, Sequoia 15.6), R 4.5.1 [0 NOTES, 0 WARNINGS, 0 ERRORS] 4 | * Ubuntu latest (release) via GitHub actions, R 4.5.0 [0 NOTES, 0 WARNINGS, 0 ERRORS] 5 | * Ubuntu latest (devel) via GitHub actions, R devel [0 NOTES, 0 WARNINGS, 0 ERRORS] 6 | * Ubuntu latest (oldrel) via GitHub actions, R 4.4.3 [0 NOTES, 0 WARNINGS, 0 ERRORS] 7 | * Windows latest (release) via GitHub actions, R 4.5.1 [0 NOTES, 0 WARNINGS, 0 ERRORS] 8 | * MacOS latest, Sonoma 14.7.6 (release) via GitHub actions, R 4.5.1 [0 NOTES, 0 WARNINGS, 0 ERRORS] 9 | * Fedora Linux gcc15 via Rhub Github actions, R devel [0 NOTES, 0 WARNINGS, 0 ERRORS] 10 | * Windows Server 2022 x64 via win-builder, R devel [0 NOTES, 0 WARNINGS, 0 ERRORS] 11 | 12 | ## revdepcheck results 13 | 14 | We checked 5 reverse dependencies, comparing R CMD check results across CRAN and dev versions of this package. 15 | 16 | * We saw 0 new problems 17 | * We failed to check 0 packages 18 | -------------------------------------------------------------------------------- /R/prism_colour_pal.R: -------------------------------------------------------------------------------- 1 | #' Prism colour palettes 2 | #' 3 | #' A collection of colour palettes which mirror the 4 | #' colour schemes available in GraphPad Prism. 5 | #' 6 | #' @inheritParams scale_colour_prism 7 | #' @return Returns a function which takes a single integer as its only argument 8 | #' and returns a character vector of hexadecimal colours. 9 | #' See the examples below for usage. 10 | #' @example inst/examples/ex-prism_colour_pal.R 11 | #' @export 12 | prism_colour_pal <- function(palette = "colors") { 13 | allcols <- ggprism::ggprism_data$colour_palettes 14 | if (!palette %in% names(allcols)) { 15 | stop("The palette ", paste(palette), " does not exist. 16 | See lengths(ggprism_data$colour_palettes) for valid palette names.") 17 | } 18 | values <- unname(allcols[[palette]]) 19 | f <- manual_pal(values) 20 | attr(f, "max_n") <- length(values) 21 | f 22 | } 23 | 24 | #' @rdname prism_colour_pal 25 | #' @export 26 | prism_color_pal <- prism_colour_pal 27 | -------------------------------------------------------------------------------- /R/wings.R: -------------------------------------------------------------------------------- 1 | #' Wing morphology of mutant flies 2 | #' 3 | #' Fold changes of different measures of wing morphology in heterozygous 4 | #' (Tps1MIC/+) and homozygous (Tps1MIC) Tps1 mutant flies. Data are expressed 5 | #' as percentage change relative to the mean of the heterozygous mutants. 6 | #' 7 | #' 40 flies were measured in total, with 3 measurements taken per fly. 8 | #' 9 | #' \describe{ 10 | #' \item{sex}{`factor`. Male or female.} 11 | #' \item{genotype}{`factor`. Heterozygous (Tps1MIC/+) or homozygous (Tps1MIC) mutant} 12 | #' \item{measure}{`factor`. Type of wing measurement: wing size, cell size, or cell number} 13 | #' \item{percent.change}{`double`. Value measured.} 14 | #' } 15 | #' 16 | #' @references Matsushita, R, Nishimura, T. Trehalose 17 | #' metabolism confers developmental robustness and stability in 18 | #' _Drosophila_ by regulating glucose homeostasis. Commun Biol 3, 170 19 | #' (2020). \doi{10.1038/s42003-020-0889-1} 20 | #' 21 | #' @keywords datasets 22 | "wings" 23 | -------------------------------------------------------------------------------- /R/scale_shape_prism.R: -------------------------------------------------------------------------------- 1 | #' Prism shape scales (discrete) 2 | #' 3 | #' Shape scales that approximate those used in GraphPad Prism. 4 | #' No unicode characters are used, only the default symbols available in R. 5 | #' 6 | #' The `default` palette supports up to 9 values. It does not use 7 | #' any symbols with a fill. 8 | #' 9 | #' The `filled` palette supports up to 10 values. The first 5 symbols 10 | #' have a fill. 11 | #' 12 | #' The `complete` palette supports up to 14 values. Symbols 5 to 9 13 | #' have a fill. 14 | #' 15 | #' @param palette `string`. Palette name, one of: `default`, 16 | #' `filled`, or `complete`. 17 | #' @inheritDotParams ggplot2::discrete_scale -aesthetics -scale_name 18 | #' 19 | #' @return Returns a ggproto object of class _ScaleDiscrete_ which works with 20 | #' _shape_ aesthetics. 21 | #' 22 | #' @example inst/examples/ex-scale_shape_prism.R 23 | #' 24 | #' @export 25 | scale_shape_prism <- function(palette = "default", ...) { 26 | discrete_scale("shape", "prism", prism_shape_pal(palette = palette), ...) 27 | } 28 | -------------------------------------------------------------------------------- /_pkgdown.yml: -------------------------------------------------------------------------------- 1 | destination: docs 2 | 3 | title: ggprism 4 | 5 | home: 6 | links: 7 | - text: 'Ask a question' 8 | href: https://github.com/csdaw/ggprism/discussions 9 | 10 | navbar: 11 | title: a title 12 | type: default 13 | left: 14 | - icon: fa-home fa-lg 15 | href: index.html 16 | - text: Getting Started 17 | href: articles/ggprism.html 18 | - text: Guides 19 | menu: 20 | - text: Themes 21 | href: articles/themes.html 22 | - text: Colour, Fill, and Shape Palettes 23 | href: articles/colours.html 24 | - text: Changing Axes 25 | href: articles/axes.html 26 | - text: Adding p-values 27 | href: articles/pvalues.html 28 | - text: Examples 29 | menu: 30 | - text: "Ex 1: Dose Response Curve" 31 | href: articles/web-only/ex1-dose.html 32 | - text: "Ex 2: Real Life Data" 33 | href: articles/web-only/ex2-wings.html 34 | - text: All Palettes 35 | href: articles/web-only/palettes.html 36 | - text: Reference 37 | href: reference/index.html 38 | -------------------------------------------------------------------------------- /inst/tinytest/test-scale_fill_prism.R: -------------------------------------------------------------------------------- 1 | #### Setup --------------------------------------------------------------------- 2 | ## load libraries 3 | library(ggplot2) 4 | 5 | p <- ggplot(ToothGrowth, aes(x = as.factor(dose), y = len, fill = as.factor(dose))) + 6 | geom_col() 7 | 8 | #### Tests --------------------------------------------------------------------- 9 | # test that scale_fill_prism has correct class 10 | expect_equal(class(scale_fill_prism()), c("ScaleDiscrete", "Scale", "ggproto", "gg")) 11 | 12 | # test that scale_fill_prism works 13 | g <- p + scale_fill_prism(palette = "colors") 14 | 15 | expect_silent(ggplotGrob(g)) 16 | 17 | # test that prism_fill_pal has correct structure 18 | p1 <- prism_fill_pal(palette = "colors") 19 | 20 | expect_true(is.function(p1)) 21 | 22 | expect_equal(attr(p1, "max_n"), 20) 23 | 24 | # test that prism_fill_pal produces a valid hex colour 25 | expect_true(grepl("^#[a-zA-Z0-9]{6}$", p1(1))) 26 | 27 | # test that error occurs if palette does not exist 28 | expect_error(p + scale_fill_prism(palette = "banana")) 29 | -------------------------------------------------------------------------------- /inst/tinytest/test-scale_shape_prism.R: -------------------------------------------------------------------------------- 1 | #### Setup --------------------------------------------------------------------- 2 | ## load libraries 3 | library(ggplot2) 4 | 5 | p <- ggplot(ToothGrowth, aes(x = as.factor(dose), y = len, shape = as.factor(dose))) + 6 | geom_point() 7 | 8 | #### Tests --------------------------------------------------------------------- 9 | # test that scale_shape_prism has correct class 10 | expect_equal(class(scale_shape_prism()), c("ScaleDiscrete", "Scale", "ggproto", "gg")) 11 | 12 | # test that scale_shape_prism works 13 | g <- p + scale_shape_prism(palette = "default") 14 | 15 | expect_silent(ggplotGrob(g)) 16 | 17 | # test that prism_shape_pal has correct structure 18 | p1 <- prism_shape_pal(palette = "default") 19 | 20 | expect_true(is.function(p1)) 21 | 22 | expect_equal(attr(p1, "max_n"), 9) 23 | 24 | # test that prism_shape_pal produces a two digit number 25 | expect_true(grepl("[0-9]{2}", p1(1))) 26 | 27 | # test that error occurs if palette does not exist 28 | expect_error(p + scale_shape_prism(palette = "banana")) 29 | -------------------------------------------------------------------------------- /man/ggprism-package.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/ggprism-package.R 3 | \docType{package} 4 | \name{ggprism-package} 5 | \alias{ggprism} 6 | \alias{ggprism-package} 7 | \title{ggprism: A 'ggplot2' Extension Inspired by 'GraphPad Prism'} 8 | \description{ 9 | Provides various themes, palettes, and other functions that are used to customise ggplots to look like they were made in 'GraphPad Prism'. The 'Prism'-look is achieved with theme_prism() and scale_fill|colour_prism(), axes can be changed with custom guides like guide_prism_minor(), and significance indicators added with add_pvalue(). 10 | } 11 | \seealso{ 12 | Useful links: 13 | \itemize{ 14 | \item \url{https://csdaw.github.io/ggprism/} 15 | \item \url{https://github.com/csdaw/ggprism} 16 | \item Report bugs at \url{https://github.com/csdaw/ggprism/issues} 17 | } 18 | 19 | } 20 | \author{ 21 | \strong{Maintainer}: Charlotte Dawson \email{csdaw@outlook.com} (\href{https://orcid.org/0000-0002-7151-5971}{ORCID}) 22 | 23 | } 24 | \keyword{internal} 25 | -------------------------------------------------------------------------------- /R/prism_shape_pal.R: -------------------------------------------------------------------------------- 1 | #' Prism shape palettes 2 | #' 3 | #' Shape palettes that approximate those used in GraphPad Prism. 4 | #' No unicode characters are used, only the default symbols available in R. 5 | #' 6 | #' The `default` palette supports up to 9 values. It does not use 7 | #' any symbols with a fill. 8 | #' 9 | #' The `filled` palette supports up to 10 values. The first 5 symbols 10 | #' have a fill. 11 | #' 12 | #' The `complete` palette supports up to 14 values. Symbols 5 to 9 13 | #' have a fill. 14 | #' 15 | #' @inheritParams scale_shape_prism 16 | #' @return Returns a function which takes a single integer as its only argument 17 | #' and returns a character vector of integers which correspond to R plot pch 18 | #' symbols. 19 | #' See the examples below for usage. 20 | #' @example inst/examples/ex-prism_shape_pal.R 21 | #' @export 22 | prism_shape_pal <- function(palette = c("default", "filled", "complete")) { 23 | palette <- match.arg(palette) 24 | shapes <- ggprism::ggprism_data$shape_palettes[[palette]] 25 | 26 | out <- manual_pal(shapes[["pch"]]) 27 | attr(out, "max_n") <- nrow(shapes) 28 | out 29 | } 30 | -------------------------------------------------------------------------------- /data-raw/themes.R: -------------------------------------------------------------------------------- 1 | # Extract Themes from Prism Colour Schemes 2 | # 3 | # Extract themes from Prism colour scheme .txt files. Text files were 4 | # generated from .clr files included with an installed version of Prism on 5 | # MacOS using a Swift script. 6 | # 7 | # See: 8 | # 9 | # - https://stackoverflow.com/questions/49379341 10 | # 11 | library(readr) 12 | library(dplyr) 13 | library(stringr) 14 | library(purrr) 15 | library(here) 16 | 17 | scheme_dir <- "data-raw/schemes" 18 | 19 | scheme_files <- dir(scheme_dir, pattern = "\\.txt$", 20 | full.names = TRUE, recursive = TRUE) 21 | 22 | process_prism_scheme <- function(path) { 23 | theme <- read_delim(path, delim = " ", 24 | col_names = c("name", "r", "g", "b", "value")) %>% 25 | select(name, value) %>% 26 | filter(!str_detect(name, "^dataSet") | str_detect(name, "dataSetLegendColor1")) 27 | } 28 | 29 | 30 | themes <- map(scheme_files, process_prism_scheme) 31 | 32 | names(themes) <- tools::file_path_sans_ext(basename(scheme_files)) 33 | 34 | cat(yaml::as.yaml(themes, column.major = FALSE), 35 | file = here("data-raw", "themes.yml")) 36 | -------------------------------------------------------------------------------- /inst/examples/ex-guide_prism_bracket.R: -------------------------------------------------------------------------------- 1 | library(ggplot2) 2 | 3 | ## base plot 4 | base <- ggplot(mpg, aes(x = as.factor(cyl), y = hwy)) + 5 | geom_jitter(width = 0.2) + 6 | theme(axis.line = element_line(colour = "black")) 7 | 8 | ## use brackets on x axis 9 | # if not specified, the width of the brackets is guessed 10 | base + scale_x_discrete(guide = "prism_bracket") 11 | 12 | # you can add brackets using the guide function as well 13 | base + guides(x = "prism_bracket") 14 | 15 | ## works with coord_flip 16 | base + scale_x_discrete(guide = "prism_bracket") + 17 | coord_flip() 18 | 19 | ## adjust bracket width 20 | base + scale_x_discrete(guide = guide_prism_bracket(width = 0.12)) 21 | 22 | ## make brackets point inward 23 | base + scale_x_discrete(guide = guide_prism_bracket(width = 0.12, outside = FALSE)) 24 | 25 | ## change colour with the usual axis.line, axis.ticks, axis.text elements 26 | base + scale_x_discrete(guide = guide_prism_bracket(width = 0.12, outside = FALSE)) + 27 | theme(axis.line.x = element_line(colour = "red"), 28 | axis.ticks.x = element_line(colour = "blue"), 29 | axis.text.x = element_text(colour = "green")) 30 | -------------------------------------------------------------------------------- /inst/examples/ex-guide_prism_offset.R: -------------------------------------------------------------------------------- 1 | library(ggplot2) 2 | 3 | ## base plot 4 | base <- ggplot(mtcars, aes(x = wt, y = mpg)) + 5 | geom_point() + 6 | theme(axis.line = element_line(colour = "black")) 7 | 8 | ## use offset guide via scale_x/y_continuous 9 | base + 10 | scale_x_continuous( 11 | limits = c(1, 6), 12 | breaks = seq(1, 6, by = 1), 13 | guide = "prism_offset" 14 | ) + 15 | scale_y_continuous( 16 | guide = "prism_offset" 17 | ) 18 | 19 | ## use offset guide via guides argument 20 | base + 21 | guides(x = "prism_offset", y = "prism_offset") + 22 | scale_x_continuous( 23 | limits = c(1, 6), 24 | breaks = seq(1, 6, by = 1) 25 | ) 26 | 27 | ## change colour and tick length with the usual elements 28 | base + 29 | scale_x_continuous( 30 | limits = c(0, 6), 31 | minor_breaks = seq(0, 6, 0.5), 32 | guide = "prism_offset" 33 | ) + 34 | scale_y_continuous( 35 | limits = c(10, 35), 36 | minor_breaks = seq(10, 35, 1.25), 37 | guide = "prism_offset" 38 | ) + 39 | theme( 40 | axis.ticks.length = unit(10, "pt"), 41 | axis.ticks = element_line(colour = "red"), 42 | axis.line = element_line(colour = "blue") 43 | ) 44 | -------------------------------------------------------------------------------- /data-raw/build.R: -------------------------------------------------------------------------------- 1 | suppressPackageStartupMessages({ 2 | library("purrr") 3 | library("tibble") 4 | library("rlang") 5 | library("here") 6 | library("yaml") 7 | }) 8 | 9 | ggprism_data <- new_environment() 10 | 11 | load_themes <- function() { 12 | out <- yaml.load_file(here("data-raw", "themes.yml")) 13 | 14 | map(out, ~ map_dfr(., as_tibble)) 15 | } 16 | ggprism_data$themes <- load_themes() 17 | 18 | # include ggplot2 theme_all_null 19 | ggprism_data$themes[["all_null"]] <- ggplot2:::ggplot_global$theme_all_null 20 | 21 | 22 | load_fill_palettes <- function() { 23 | out <- yaml.load_file(here("data-raw", "fill-palettes.yml")) 24 | 25 | out 26 | } 27 | ggprism_data$fill_palettes <- load_fill_palettes() 28 | 29 | load_colour_palettes <- function() { 30 | out <- yaml.load_file(here("data-raw", "colour-palettes.yml")) 31 | 32 | out 33 | } 34 | ggprism_data$colour_palettes <- load_colour_palettes() 35 | 36 | 37 | load_shape_palettes <- function() { 38 | out <- yaml.load_file(here("data-raw", "shape-palettes.yml")) 39 | 40 | map(out, ~ map_dfr(., as_tibble)) 41 | } 42 | ggprism_data$shape_palettes <- load_shape_palettes() 43 | 44 | 45 | # save to rda 46 | ggprism_data <- as.list(ggprism_data) 47 | 48 | usethis::use_data(ggprism_data, overwrite = TRUE) 49 | 50 | 51 | -------------------------------------------------------------------------------- /man/wings.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/wings.R 3 | \docType{data} 4 | \name{wings} 5 | \alias{wings} 6 | \title{Wing morphology of mutant flies} 7 | \format{ 8 | An object of class \code{tbl_df} (inherits from \code{tbl}, \code{data.frame}) with 120 rows and 4 columns. 9 | } 10 | \usage{ 11 | wings 12 | } 13 | \description{ 14 | Fold changes of different measures of wing morphology in heterozygous 15 | (Tps1MIC/+) and homozygous (Tps1MIC) Tps1 mutant flies. Data are expressed 16 | as percentage change relative to the mean of the heterozygous mutants. 17 | } 18 | \details{ 19 | 40 flies were measured in total, with 3 measurements taken per fly. 20 | 21 | \describe{ 22 | \item{sex}{\code{factor}. Male or female.} 23 | \item{genotype}{\code{factor}. Heterozygous (Tps1MIC/+) or homozygous (Tps1MIC) mutant} 24 | \item{measure}{\code{factor}. Type of wing measurement: wing size, cell size, or cell number} 25 | \item{percent.change}{\code{double}. Value measured.} 26 | } 27 | } 28 | \references{ 29 | Matsushita, R, Nishimura, T. Trehalose 30 | metabolism confers developmental robustness and stability in 31 | \emph{Drosophila} by regulating glucose homeostasis. Commun Biol 3, 170 32 | (2020). \doi{10.1038/s42003-020-0889-1} 33 | } 34 | \keyword{datasets} 35 | -------------------------------------------------------------------------------- /man/draw_prism_offset.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/guide_prism_offset.R 3 | \name{draw_prism_offset} 4 | \alias{draw_prism_offset} 5 | \title{Grob for offset axes} 6 | \usage{ 7 | draw_prism_offset( 8 | break_positions, 9 | break_labels, 10 | axis_position, 11 | theme, 12 | check.overlap = FALSE, 13 | angle = NULL, 14 | n.dodge = 1 15 | ) 16 | } 17 | \arguments{ 18 | \item{break_positions}{position of ticks} 19 | 20 | \item{break_labels}{labels at ticks} 21 | 22 | \item{axis_position}{position of axis (top, bottom, left or right)} 23 | 24 | \item{theme}{A complete \code{\link[ggplot2]{theme}} object} 25 | 26 | \item{check.overlap}{silently remove overlapping labels, 27 | (recursively) prioritizing the first, last, and middle labels.} 28 | 29 | \item{angle}{Compared to setting the angle in 30 | \code{\link[ggplot2]{theme}} / \code{element_text}, 31 | this also uses some heuristics to automatically pick the \code{hjust} and 32 | \code{vjust} that you probably want.} 33 | 34 | \item{n.dodge}{The number of rows (for vertical axes) or columns (for 35 | horizontal axes) that should be used to render the labels. This is 36 | useful for displaying labels that would otherwise overlap.} 37 | } 38 | \description{ 39 | Grob for offset axes 40 | } 41 | \keyword{internal} 42 | -------------------------------------------------------------------------------- /man/prism_fill_pal.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/prism_fill_pal.R 3 | \name{prism_fill_pal} 4 | \alias{prism_fill_pal} 5 | \title{Prism fill palettes} 6 | \usage{ 7 | prism_fill_pal(palette = "colors") 8 | } 9 | \arguments{ 10 | \item{palette}{\code{string}. Palette name, see 11 | \code{lengths(ggprism_data$fill_palettes)} 12 | for valid palette names.} 13 | } 14 | \value{ 15 | Returns a function which takes a single integer as its only argument 16 | and returns a character vector of hexadecimal colours. 17 | See the examples below for usage. 18 | } 19 | \description{ 20 | A collection of fill palettes which mirror the 21 | colour schemes available in GraphPad Prism. 22 | } 23 | \examples{ 24 | library(ggplot2) 25 | 26 | ## list all available fill palettes and their lengths 27 | lengths(ggprism_data$fill_palettes) 28 | 29 | ## select some colours from a palette 30 | prism_fill_pal(palette = "summer")(4) 31 | 32 | ## see all the colours in a specific palette 33 | # define a function for convenience 34 | library(scales) 35 | 36 | show_palette <- function(palette) { 37 | scales::show_col( 38 | prism_fill_pal(palette = palette)( 39 | attr(prism_fill_pal(palette = palette), "max_n") 40 | ) 41 | ) 42 | } 43 | 44 | # show the colours in the palette "pearl" 45 | show_palette("floral") 46 | } 47 | -------------------------------------------------------------------------------- /data-raw/shape-palettes.yml: -------------------------------------------------------------------------------- 1 | complete: 2 | - name: circle small 3 | pch: 16.0 4 | - name: square 5 | pch: 15.0 6 | - name: triangle 7 | pch: 17.0 8 | - name: diamond 9 | pch: 18.0 10 | - name: circle filled 11 | pch: 21.0 12 | - name: square filled 13 | pch: 22.0 14 | - name: triangle filled 15 | pch: 24.0 16 | - name: triangle down filled 17 | pch: 25.0 18 | - name: diamond filled 19 | pch: 23.0 20 | - name: asterisk 21 | pch: 8.0 22 | - name: plus 23 | pch: 3.0 24 | - name: cross 25 | pch: 4.0 26 | - name: circle plus 27 | pch: 10.0 28 | - name: square cross 29 | pch: 7.0 30 | default: 31 | - name: circle small 32 | pch: 16.0 33 | - name: square 34 | pch: 15.0 35 | - name: triangle 36 | pch: 17.0 37 | - name: diamond 38 | pch: 18.0 39 | - name: asterisk 40 | pch: 8.0 41 | - name: plus 42 | pch: 3.0 43 | - name: cross 44 | pch: 4.0 45 | - name: circle plus 46 | pch: 10.0 47 | - name: square cross 48 | pch: 7.0 49 | filled: 50 | - name: circle filled 51 | pch: 21.0 52 | - name: square filled 53 | pch: 22.0 54 | - name: triangle filled 55 | pch: 24.0 56 | - name: triangle down filled 57 | pch: 25.0 58 | - name: diamond filled 59 | pch: 23.0 60 | - name: asterisk 61 | pch: 8.0 62 | - name: plus 63 | pch: 3.0 64 | - name: cross 65 | pch: 4.0 66 | - name: circle plus 67 | pch: 10.0 68 | - name: square cross 69 | pch: 7.0 70 | -------------------------------------------------------------------------------- /R/preview_theme.R: -------------------------------------------------------------------------------- 1 | #' Preview Prism themes 2 | #' 3 | #' Quickly generate a preview of a ggprism theme. 4 | #' See `names(ggprism_data$themes)` for valid palette names. 5 | #' 6 | #' @param palette `string`. Palette name. 7 | #' 8 | #' @return Returns an object of class _ggplot_. 9 | #' 10 | #' @example inst/examples/ex-preview_theme.R 11 | #' 12 | #' @export 13 | preview_theme <- function(palette) { 14 | if (!palette %in% names(ggprism::ggprism_data$themes)) { 15 | stop("The palette ", paste(palette), " does not exist. 16 | See names(ggprism_data$themes) for valid palette names") 17 | } 18 | if (palette == "all_null") { 19 | stop("Cannot preview an all NULL theme") 20 | } 21 | 22 | # get maximum length of colour palette 23 | max_n <- attr(prism_colour_pal(palette), "max_n") 24 | 25 | # generate some data 26 | df <- data.frame( 27 | x = rep(factor(1:20), 20), 28 | y = stats::rnorm(20^2) 29 | ) 30 | 31 | # subset data depending on palette length 32 | df <- df[df$x %in% c(1:max_n), ] 33 | 34 | # make a boxplot which shows entire palette 35 | ggplot(df, aes(x = .data$x, y = .data$y, colour = .data$x, fill = .data$x)) + 36 | geom_boxplot() + 37 | theme_prism(palette = palette) + 38 | scale_colour_prism(palette = palette) + 39 | scale_fill_prism(palette = palette) + 40 | labs(title = paste0(palette, " (", max_n, ")")) 41 | } 42 | -------------------------------------------------------------------------------- /inst/tinytest/test-theme_prism.R: -------------------------------------------------------------------------------- 1 | #### Setup --------------------------------------------------------------------- 2 | ## load libraries 3 | library(ggplot2) 4 | 5 | p <- ggplot(ToothGrowth, aes(x = as.factor(dose), y = len)) + 6 | geom_point() 7 | 8 | #### Tests --------------------------------------------------------------------- 9 | # test that theme_prism has correct class 10 | expect_true(inherits(theme_prism(), c("theme", "ggplot2::theme"))) 11 | 12 | # test that theme_prism defaults work 13 | g <- p + theme_prism() 14 | 15 | expect_silent(ggplotGrob(g)) 16 | 17 | # test that theme_prism axis text angle can be changed 18 | g <- p + theme_prism(axis_text_angle = 45) 19 | 20 | expect_silent(ggplotGrob(g)) 21 | 22 | # test that theme_prism border can be set 23 | g <- p + theme_prism(border = TRUE) + 24 | coord_cartesian(clip = "off") 25 | 26 | expect_silent(ggplotGrob(g)) 27 | 28 | #### Sanity checks ------------------------------------------------------------- 29 | # test that error occurs if palette does not exist 30 | expect_error(p + theme_prism(palette = "banana")) 31 | 32 | # test that error occurs if improper axis text angle is used 33 | expect_error(p + theme_prism(axis_text_angle = 22)) 34 | 35 | # test that error occurs if border isn't boolean 36 | expect_error(p + theme_prism(border = NULL)) 37 | expect_error(p + theme_prism(border = "banana")) 38 | expect_error(p + theme_prism(border = 0)) 39 | -------------------------------------------------------------------------------- /man/draw_prism_minor.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/guide_prism_minor.R 3 | \name{draw_prism_minor} 4 | \alias{draw_prism_minor} 5 | \title{Grob for axes with minor ticks} 6 | \usage{ 7 | draw_prism_minor( 8 | break_positions, 9 | break_labels, 10 | breaks_major, 11 | axis_position, 12 | theme, 13 | check.overlap = FALSE, 14 | angle = NULL, 15 | n.dodge = 1 16 | ) 17 | } 18 | \arguments{ 19 | \item{break_positions}{position of ticks} 20 | 21 | \item{break_labels}{labels at ticks} 22 | 23 | \item{breaks_major}{logical vector indicating major ticks versus minor ticks} 24 | 25 | \item{axis_position}{position of axis (top, bottom, left or right)} 26 | 27 | \item{theme}{A complete \code{\link[ggplot2]{theme}} object} 28 | 29 | \item{check.overlap}{silently remove overlapping labels, 30 | (recursively) prioritizing the first, last, and middle labels.} 31 | 32 | \item{angle}{Compared to setting the angle in 33 | \code{\link[ggplot2]{theme}} / \code{element_text}, 34 | this also uses some heuristics to automatically pick the \code{hjust} and 35 | \code{vjust} that you probably want.} 36 | 37 | \item{n.dodge}{The number of rows (for vertical axes) or columns (for 38 | horizontal axes) that should be used to render the labels. This is 39 | useful for displaying labels that would otherwise overlap.} 40 | } 41 | \description{ 42 | Grob for axes with minor ticks 43 | } 44 | \keyword{internal} 45 | -------------------------------------------------------------------------------- /DESCRIPTION: -------------------------------------------------------------------------------- 1 | Package: ggprism 2 | Title: A 'ggplot2' Extension Inspired by 'GraphPad Prism' 3 | Version: 1.0.7 4 | Authors@R: 5 | person(given = "Charlotte", 6 | family = "Dawson", 7 | role = c("aut", "cre"), 8 | email = "csdaw@outlook.com", 9 | comment = c(ORCID = "0000-0002-7151-5971")) 10 | Description: Provides various themes, palettes, and other functions 11 | that are used to customise ggplots to look like they were made in 'GraphPad 12 | Prism'. The 'Prism'-look is achieved with theme_prism() and 13 | scale_fill|colour_prism(), axes can be changed with custom guides like 14 | guide_prism_minor(), and significance indicators added with add_pvalue(). 15 | License: GPL (>= 3.0) 16 | URL: https://csdaw.github.io/ggprism/, https://github.com/csdaw/ggprism 17 | BugReports: https://github.com/csdaw/ggprism/issues 18 | Encoding: UTF-8 19 | LazyData: true 20 | Roxygen: list(markdown = TRUE) 21 | RoxygenNote: 7.3.2 22 | Depends: 23 | R (>= 3.2) 24 | Imports: 25 | digest, 26 | ggplot2 (>= 3.4.0), 27 | glue, 28 | grid, 29 | gtable (>= 0.1.1), 30 | rlang (>= 0.3.0), 31 | scales (>= 0.5.0), 32 | stats, 33 | tibble, 34 | utils 35 | Suggests: 36 | covr, 37 | dplyr, 38 | ggbeeswarm, 39 | ggnewscale, 40 | knitr, 41 | magrittr, 42 | patchwork, 43 | rmarkdown, 44 | rstatix, 45 | tidyr, 46 | tinytest 47 | VignetteBuilder: knitr 48 | -------------------------------------------------------------------------------- /inst/tinytest/test-scale_colour_prism.R: -------------------------------------------------------------------------------- 1 | #### Setup --------------------------------------------------------------------- 2 | ## load libraries 3 | library(ggplot2) 4 | 5 | p <- ggplot(ToothGrowth, aes(x = as.factor(dose), y = len, colour = as.factor(dose))) + 6 | geom_point() 7 | 8 | #### Tests --------------------------------------------------------------------- 9 | # test that scale_colour_prism has correct class 10 | expect_equal(class(scale_colour_prism()), c("ScaleDiscrete", "Scale", "ggproto", "gg")) 11 | expect_equal(class(scale_color_prism()), c("ScaleDiscrete", "Scale", "ggproto", "gg")) 12 | 13 | # test that scale_colour_prism works 14 | g1 <- p + scale_colour_prism(palette = "colors") 15 | g2 <- p + scale_color_prism(palette = "colors") 16 | 17 | expect_silent(ggplotGrob(g1)) 18 | expect_silent(ggplotGrob(g2)) 19 | 20 | # test that prism_colour_pal has correct structure 21 | p1 <- prism_colour_pal(palette = "colors") 22 | p2 <- prism_color_pal(palette = "colors") 23 | 24 | expect_true(is.function(p1)) 25 | expect_true(is.function(p2)) 26 | 27 | expect_equal(attr(p1, "max_n"), 20) 28 | expect_equal(attr(p2, "max_n"), 20) 29 | 30 | # test that prism_colour_pal produces a valid hex colour 31 | expect_true(grepl("^#[a-zA-Z0-9]{6}$", p1(1))) 32 | expect_true(grepl("^#[a-zA-Z0-9]{6}$", p2(1))) 33 | 34 | # test that error occurs if palette does not exist 35 | expect_error(p + scale_colour_prism(palette = "banana")) 36 | expect_error(p + scale_color_prism(palette = "banana")) 37 | -------------------------------------------------------------------------------- /revdep/README.md: -------------------------------------------------------------------------------- 1 | # Platform 2 | 3 | |field |value | 4 | |:--------|:---------------------------------------------------------------------------| 5 | |version |R version 4.5.1 (2025-06-13) | 6 | |os |macOS Sequoia 15.6 | 7 | |system |aarch64, darwin20 | 8 | |ui |RStudio | 9 | |language |(EN) | 10 | |collate |en_US.UTF-8 | 11 | |ctype |en_US.UTF-8 | 12 | |tz |America/Los_Angeles | 13 | |date |2025-07-31 | 14 | |rstudio |2025.05.1+513 Mariposa Orchid (desktop) | 15 | |pandoc |NA | 16 | |quarto |1.6.42 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/quarto | 17 | 18 | # Dependencies 19 | 20 | |package |old |new |Δ | 21 | |:-------|:-----|:----------|:--| 22 | |ggprism |1.0.6 |1.0.6.9000 |* | 23 | 24 | # Revdeps 25 | 26 | -------------------------------------------------------------------------------- /man/draw_prism_offset_minor.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/guide_prism_offset_minor.R 3 | \name{draw_prism_offset_minor} 4 | \alias{draw_prism_offset_minor} 5 | \title{Grob for offset axes with minor ticks} 6 | \usage{ 7 | draw_prism_offset_minor( 8 | break_positions, 9 | break_labels, 10 | breaks_major, 11 | axis_position, 12 | theme, 13 | check.overlap = FALSE, 14 | angle = NULL, 15 | n.dodge = 1 16 | ) 17 | } 18 | \arguments{ 19 | \item{break_positions}{position of ticks} 20 | 21 | \item{break_labels}{labels at ticks} 22 | 23 | \item{breaks_major}{logical vector indicating major ticks versus minor ticks} 24 | 25 | \item{axis_position}{position of axis (top, bottom, left or right)} 26 | 27 | \item{theme}{A complete \code{\link[ggplot2]{theme}} object} 28 | 29 | \item{check.overlap}{silently remove overlapping labels, 30 | (recursively) prioritizing the first, last, and middle labels.} 31 | 32 | \item{angle}{Compared to setting the angle in 33 | \code{\link[ggplot2]{theme}} / \code{element_text}, 34 | this also uses some heuristics to automatically pick the \code{hjust} and 35 | \code{vjust} that you probably want.} 36 | 37 | \item{n.dodge}{The number of rows (for vertical axes) or columns (for 38 | horizontal axes) that should be used to render the labels. This is 39 | useful for displaying labels that would otherwise overlap.} 40 | } 41 | \description{ 42 | Grob for offset axes with minor ticks 43 | } 44 | \keyword{internal} 45 | -------------------------------------------------------------------------------- /man/prism_colour_pal.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/prism_colour_pal.R 3 | \name{prism_colour_pal} 4 | \alias{prism_colour_pal} 5 | \alias{prism_color_pal} 6 | \title{Prism colour palettes} 7 | \usage{ 8 | prism_colour_pal(palette = "colors") 9 | 10 | prism_color_pal(palette = "colors") 11 | } 12 | \arguments{ 13 | \item{palette}{\code{string}. Palette name, use 14 | \code{lengths(ggprism_data$colour_palettes)} to show all valid palette names 15 | and their number of values each palette supports.} 16 | } 17 | \value{ 18 | Returns a function which takes a single integer as its only argument 19 | and returns a character vector of hexadecimal colours. 20 | See the examples below for usage. 21 | } 22 | \description{ 23 | A collection of colour palettes which mirror the 24 | colour schemes available in GraphPad Prism. 25 | } 26 | \examples{ 27 | library(ggplot2) 28 | 29 | ## list all available colour palettes and their lengths 30 | lengths(ggprism_data$colour_palettes) 31 | 32 | ## select some colours from a palette 33 | prism_colour_pal(palette = "starry")(4) 34 | 35 | ## see all the colours in a specific palette 36 | # define a function for convenience 37 | library(scales) 38 | 39 | show_palette <- function(palette) { 40 | scales::show_col( 41 | prism_colour_pal(palette = palette)( 42 | attr(prism_colour_pal(palette = palette), "max_n") 43 | ) 44 | ) 45 | } 46 | 47 | # show the colours in the palette "pearl" 48 | show_palette("pearl") 49 | } 50 | -------------------------------------------------------------------------------- /.github/workflows/pkgdown.yaml: -------------------------------------------------------------------------------- 1 | # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples 2 | # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help 3 | on: 4 | push: 5 | branches: [main, master] 6 | pull_request: 7 | branches: [main, master] 8 | release: 9 | types: [published] 10 | workflow_dispatch: 11 | 12 | name: pkgdown 13 | 14 | jobs: 15 | pkgdown: 16 | runs-on: ubuntu-latest 17 | # Only restrict concurrency for non-PR jobs 18 | concurrency: 19 | group: pkgdown-${{ github.event_name != 'pull_request' || github.run_id }} 20 | env: 21 | GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} 22 | permissions: 23 | contents: write 24 | steps: 25 | - uses: actions/checkout@v4 26 | 27 | - uses: r-lib/actions/setup-pandoc@v2 28 | 29 | - uses: r-lib/actions/setup-r@v2 30 | with: 31 | use-public-rspm: true 32 | 33 | - uses: r-lib/actions/setup-r-dependencies@v2 34 | with: 35 | extra-packages: any::pkgdown, local::. 36 | needs: website 37 | 38 | - name: Build site 39 | run: pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE) 40 | shell: Rscript {0} 41 | 42 | - name: Deploy to GitHub pages 🚀 43 | if: github.event_name != 'pull_request' 44 | uses: JamesIves/github-pages-deploy-action@v4.5.0 45 | with: 46 | clean: false 47 | branch: gh-pages 48 | folder: docs 49 | -------------------------------------------------------------------------------- /.github/workflows/test-coverage.yaml: -------------------------------------------------------------------------------- 1 | # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples 2 | # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help 3 | on: 4 | push: 5 | branches: [main, master] 6 | pull_request: 7 | branches: [main, master] 8 | 9 | name: test-coverage 10 | 11 | jobs: 12 | test-coverage: 13 | runs-on: ubuntu-latest 14 | env: 15 | GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} 16 | 17 | steps: 18 | - uses: actions/checkout@v4 19 | 20 | - uses: r-lib/actions/setup-r@v2 21 | with: 22 | use-public-rspm: true 23 | 24 | - uses: r-lib/actions/setup-r-dependencies@v2 25 | with: 26 | extra-packages: any::covr 27 | needs: coverage 28 | 29 | - name: Test coverage 30 | run: | 31 | covr::codecov( 32 | quiet = FALSE, 33 | clean = FALSE, 34 | install_path = file.path(normalizePath(Sys.getenv("RUNNER_TEMP"), winslash = "/"), "package") 35 | ) 36 | shell: Rscript {0} 37 | 38 | - name: Show testthat output 39 | if: always() 40 | run: | 41 | ## -------------------------------------------------------------------- 42 | find '${{ runner.temp }}/package' -name 'testthat.Rout*' -exec cat '{}' \; || true 43 | shell: bash 44 | 45 | - name: Upload test results 46 | if: failure() 47 | uses: actions/upload-artifact@v4 48 | with: 49 | name: coverage-test-failures 50 | path: ${{ runner.temp }}/package 51 | -------------------------------------------------------------------------------- /.github/workflows/R-CMD-check.yaml: -------------------------------------------------------------------------------- 1 | # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples 2 | # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help 3 | on: 4 | push: 5 | branches: [main, master] 6 | pull_request: 7 | branches: [main, master] 8 | 9 | name: R-CMD-check 10 | 11 | jobs: 12 | R-CMD-check: 13 | runs-on: ${{ matrix.config.os }} 14 | 15 | name: ${{ matrix.config.os }} (${{ matrix.config.r }}) 16 | 17 | strategy: 18 | fail-fast: false 19 | matrix: 20 | config: 21 | - {os: macos-latest, r: 'release'} 22 | - {os: windows-latest, r: 'release'} 23 | - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} 24 | - {os: ubuntu-latest, r: 'release'} 25 | - {os: ubuntu-latest, r: 'oldrel-1'} 26 | 27 | env: 28 | GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} 29 | R_KEEP_PKG_SOURCE: yes 30 | 31 | steps: 32 | - uses: actions/checkout@v4 33 | 34 | - uses: r-lib/actions/setup-pandoc@v2 35 | 36 | - uses: r-lib/actions/setup-r@v2 37 | with: 38 | r-version: ${{ matrix.config.r }} 39 | http-user-agent: ${{ matrix.config.http-user-agent }} 40 | use-public-rspm: true 41 | 42 | - uses: r-lib/actions/setup-r-dependencies@v2 43 | with: 44 | extra-packages: any::rcmdcheck 45 | needs: check 46 | 47 | - uses: r-lib/actions/check-r-package@v2 48 | with: 49 | upload-snapshots: true 50 | build_args: 'c("--no-manual","--compact-vignettes=gs+qpdf")' 51 | -------------------------------------------------------------------------------- /inst/examples/ex-theme_prism.R: -------------------------------------------------------------------------------- 1 | library(ggplot2) 2 | 3 | # see ?preview_theme for a convenient function to preview ggprism themes 4 | # before using theme_prism 5 | 6 | ## base plot 7 | base <- ggplot(mpg, aes(x = displ, y = cty, colour = class)) + 8 | geom_point() 9 | 10 | ## default palette is "black_and_white" 11 | ## default base_size is 14 (compared with 11 for theme_grey) 12 | base + 13 | theme_prism() 14 | 15 | ## try some other palettes 16 | base + 17 | theme_prism(palette = "office") 18 | 19 | base + 20 | theme_prism(palette = "flames") 21 | 22 | ## try matching the theme_prism palette with same colour palette 23 | base + 24 | theme_prism(palette = "stained_glass") + 25 | scale_color_prism(palette = "stained_glass") 26 | 27 | base + 28 | theme_prism(palette = "candy_bright") + 29 | scale_color_prism(palette = "candy_bright") 30 | 31 | ## change the font face 32 | base + 33 | theme_prism(base_fontface = "plain") 34 | 35 | ## change the font family 36 | base + 37 | theme_prism(base_family = "serif") 38 | 39 | ## base_line_size scales automatically as you change base_size 40 | base + 41 | theme_prism(base_size = 10) 42 | 43 | ## but you can also change it manually 44 | base + 45 | theme_prism(base_size = 16, base_line_size = 0.8) 46 | 47 | ## easily change x axis text angle 48 | base + 49 | theme_prism(axis_text_angle = 45) 50 | 51 | ## add a border (need to turn off clipping) 52 | base + 53 | theme_prism(border = TRUE) + 54 | coord_cartesian(clip = "off") 55 | 56 | ## change border thickness 57 | base + 58 | theme_prism(border = TRUE, base_rect_size = 2) + 59 | coord_cartesian(clip = "off") 60 | -------------------------------------------------------------------------------- /man/draw_prism_bracket.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/guide_prism_bracket.R 3 | \name{draw_prism_bracket} 4 | \alias{draw_prism_bracket} 5 | \title{Grob for bracket axes} 6 | \usage{ 7 | draw_prism_bracket( 8 | break_positions, 9 | break_labels, 10 | axis_position, 11 | theme, 12 | check.overlap = FALSE, 13 | angle = NULL, 14 | n.dodge = 1, 15 | width = NULL, 16 | outside = TRUE 17 | ) 18 | } 19 | \arguments{ 20 | \item{break_positions}{Position of bracket center and labels} 21 | 22 | \item{break_labels}{Labels between ticks} 23 | 24 | \item{axis_position}{Position of axis (top, bottom, left or right)} 25 | 26 | \item{theme}{A complete \code{\link[ggplot2]{theme}} object} 27 | 28 | \item{check.overlap}{Silently remove overlapping labels, 29 | (recursively) prioritizing the first, last, and middle labels.} 30 | 31 | \item{angle}{Compared to setting the angle in 32 | \code{\link[ggplot2]{theme}} / \code{element_text}, 33 | this also uses some heuristics to automatically pick the \code{hjust} and 34 | \code{vjust} that you probably want.} 35 | 36 | \item{n.dodge}{The number of rows (for vertical axes) or columns (for 37 | horizontal axes) that should be used to render the labels. This is 38 | useful for displaying labels that would otherwise overlap.} 39 | 40 | \item{width}{\code{numeric}. Controls the width of the bracket. Try 41 | values between 0 and 1.} 42 | 43 | \item{outside}{\code{logical}. Default is \code{TRUE} and brackets point 44 | outwards. If \code{FALSE} the bracket crossbar is moved so the ticks appear 45 | to point inwards towards the plotting area.} 46 | } 47 | \description{ 48 | Grob for bracket axes. 49 | } 50 | \keyword{internal} 51 | -------------------------------------------------------------------------------- /inst/examples/ex-scale_fill_prism.R: -------------------------------------------------------------------------------- 1 | library(ggplot2) 2 | 3 | ## base plot 4 | base <- ggplot(mtcars, aes(x = mpg, fill = factor(cyl))) + 5 | geom_density(alpha = 0.75) 6 | 7 | ## works pretty much the same as ggplot2 scale_fill_manual 8 | base + 9 | scale_fill_prism(palette = "candy_bright") 10 | 11 | ## try combining the ggprism colour and fill scales 12 | base2 <- ggplot(mtcars, aes(x = mpg, fill = factor(cyl), colour = factor(cyl))) + 13 | geom_density(alpha = 0.75) 14 | 15 | base2 + 16 | scale_fill_prism(palette = "floral") + 17 | scale_colour_prism(palette = "floral") 18 | 19 | ## change fill scale title in legend 20 | base + 21 | scale_fill_prism( 22 | palette = "candy_bright", 23 | name = "Cylinders" 24 | ) 25 | 26 | ## change fill labels in legend 27 | base + 28 | scale_fill_prism( 29 | palette = "candy_bright", 30 | name = "Cylinders", 31 | label = c("4 cyl", "6 cyl", "8 cyl") 32 | ) 33 | 34 | ## change fill labels in legend with a function 35 | base + 36 | scale_fill_prism( 37 | palette = "candy_bright", 38 | name = "Cylinders", 39 | label = function(x) paste(x, "cyl") 40 | ) 41 | 42 | ## change order of fills in legend 43 | base + 44 | scale_fill_prism( 45 | palette = "candy_bright", 46 | name = "Cylinders", 47 | label = function(x) paste(x, "cyl"), 48 | breaks = c(8, 4, 6) 49 | ) 50 | 51 | ## to change which fill is assigned to which cyl 52 | ## you need to change the factor levels in the underlying data 53 | base <- ggplot(mtcars, aes(x = mpg, 54 | fill = factor(cyl, levels = c(6, 4, 8)))) + 55 | geom_density(alpha = 0.75) 56 | 57 | base + 58 | scale_fill_prism( 59 | palette = "candy_bright", 60 | name = "Cylinders" 61 | ) 62 | -------------------------------------------------------------------------------- /inst/examples/ex-scale_colour_prism.R: -------------------------------------------------------------------------------- 1 | library(ggplot2) 2 | 3 | ## base plot 4 | base <- ggplot(mtcars, aes(x = wt, y = mpg, colour = factor(cyl))) + 5 | geom_point(size = 3) 6 | 7 | ## works pretty much the same as ggplot2 scale_colour_manual 8 | base + 9 | scale_colour_prism(palette = "candy_bright") 10 | 11 | ## try combining the ggprism colour and fill scales 12 | base2 <- ggplot(mpg, aes(x = class, y = hwy, fill = class, colour = class)) + 13 | geom_boxplot() 14 | 15 | base2 + 16 | scale_fill_prism(palette = "floral") + 17 | scale_colour_prism(palette = "floral") 18 | 19 | ## change colour scale title in legend 20 | base + 21 | scale_colour_prism( 22 | palette = "candy_bright", 23 | name = "Cylinders" 24 | ) 25 | 26 | ## change colour labels in legend 27 | base + 28 | scale_colour_prism( 29 | palette = "candy_bright", 30 | name = "Cylinders", 31 | label = c("4 cyl", "6 cyl", "8 cyl") 32 | ) 33 | 34 | ## change colour labels in legend with a function 35 | base + 36 | scale_colour_prism( 37 | palette = "candy_bright", 38 | name = "Cylinders", 39 | label = function(x) paste(x, "cyl") 40 | ) 41 | 42 | ## change order of colours in legend 43 | base + 44 | scale_colour_prism( 45 | palette = "candy_bright", 46 | name = "Cylinders", 47 | label = function(x) paste(x, "cyl"), 48 | breaks = c(8, 4, 6) 49 | ) 50 | 51 | ## to change which colour is assigned to which cyl 52 | ## you need to change the factor levels in the underlying data 53 | base <- ggplot(mtcars, aes(x = wt, y = mpg, 54 | colour = factor(cyl, levels = c(6, 4, 8)))) + 55 | geom_point(size = 3) 56 | 57 | base + 58 | scale_colour_prism( 59 | palette = "candy_bright", 60 | name = "Cylinders" 61 | ) 62 | -------------------------------------------------------------------------------- /man/prism_shape_pal.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/prism_shape_pal.R 3 | \name{prism_shape_pal} 4 | \alias{prism_shape_pal} 5 | \title{Prism shape palettes} 6 | \usage{ 7 | prism_shape_pal(palette = c("default", "filled", "complete")) 8 | } 9 | \arguments{ 10 | \item{palette}{\code{string}. Palette name, one of: \code{default}, 11 | \code{filled}, or \code{complete}.} 12 | } 13 | \value{ 14 | Returns a function which takes a single integer as its only argument 15 | and returns a character vector of integers which correspond to R plot pch 16 | symbols. 17 | See the examples below for usage. 18 | } 19 | \description{ 20 | Shape palettes that approximate those used in GraphPad Prism. 21 | No unicode characters are used, only the default symbols available in R. 22 | } 23 | \details{ 24 | The \code{default} palette supports up to 9 values. It does not use 25 | any symbols with a fill. 26 | 27 | The \code{filled} palette supports up to 10 values. The first 5 symbols 28 | have a fill. 29 | 30 | The \code{complete} palette supports up to 14 values. Symbols 5 to 9 31 | have a fill. 32 | } 33 | \examples{ 34 | library(ggplot2) 35 | 36 | ## list all available shape palettes 37 | ggprism_data$shape_palettes 38 | 39 | ## select some shapes from a palette 40 | prism_shape_pal(palette = "filled")(4) 41 | 42 | ## see all the shapes in a specific palette 43 | # define a function for convenience 44 | show_shapes <- function(palette) { 45 | df_shapes <- ggprism_data$shape_palettes[[palette]][, -1] 46 | df_shapes$pch_f <- factor(df_shapes$pch, levels = df_shapes$pch) 47 | 48 | ggplot(df_shapes, aes(x = 0, y = 0, shape = pch)) + 49 | geom_point(aes(shape = pch), size = 5, fill = 'red') + 50 | scale_shape_identity() + 51 | facet_wrap(~ pch_f) + 52 | theme_void() 53 | } 54 | 55 | # show the shapes in the palette "complete" 56 | show_shapes("complete") 57 | } 58 | -------------------------------------------------------------------------------- /NEWS.md: -------------------------------------------------------------------------------- 1 | # ggprism 1.0.7 2 | 3 | * Incorporate compatability fixes for ggplot2 v4.0.0 (#38). Includes: 4 | * Ensure parent of theme_prism() is itself a theme 5 | * Fix a fragile test 6 | * Update some deprecated function calls 7 | 8 | # ggprism 1.0.6 9 | 10 | * Fixes some tests broken by scales package v.1.4.0. 11 | * No changes to package functionality. 12 | 13 | # ggprism 1.0.5 14 | 15 | * Update annotation_ticks() with `linewidth` aesthetic. 16 | * Various fixes to enable compatability with ggplot2 v3.5.0. 17 | 18 | # ggprism 1.0.4 19 | 20 | * Update wings vignette with `linewidth` aesthetic from ggplot2 v3.4.0 21 | * Stop relying on unexported ggplot2 functions to maintain compatibility 22 | with ggplot2 v3.4.0 (#20) 23 | * Fix bug in `StatBracket` (#18) 24 | * Add `parse` argument to `add_pvalue()` which allows the use of plotmath 25 | expressions for the text labels (#10). 26 | 27 | # ggprism 1.0.3 28 | 29 | * Fix one of the figures in p-values vignette 30 | * Replace some `annotation_ticks()` tests to ensure compatibility with 31 | the upcoming ggplot2 v3.4.0 32 | 33 | # ggprism 1.0.2 34 | 35 | * Make `add_pvalue()` more flexible to different input columns 36 | * Fix errors in p-values vignette so it works again 37 | * Increase test coverage 38 | * Re-write some tests so they pass for R 3.6.3 39 | * Update README (fix some incorrect links and update citation info) 40 | 41 | # ggprism 1.0.1 42 | 43 | * First CRAN submission 44 | * Remove separate LICENSE file 45 | * Reword package description in DESCRIPTION. 46 | * Fix various typos in vignettes and function documentation. 47 | * Move the two example vignettes to be online only, i.e. not included 48 | in the installed package. 49 | 50 | # ggprism 1.0.0 51 | 52 | * Initial GitHub release. Provide functions for changing ggplot2 themes, 53 | axis guides, colours, and fills, and adding p-value brackets. Also include 54 | small data set with fly wing data. 55 | -------------------------------------------------------------------------------- /inst/tinytest/test-utils.R: -------------------------------------------------------------------------------- 1 | #### Setup --------------------------------------------------------------------- 2 | # Load libraries 3 | library(magrittr) 4 | 5 | # Make a test data.frame 6 | df <- ToothGrowth 7 | df$dose <- factor(df$dose) 8 | 9 | #### Tests --------------------------------------------------------------------- 10 | # test that custom theme elements are registered properly 11 | ggprism:::.onLoad() 12 | expect_true( 13 | all( 14 | c("prism.ticks.length", 15 | "prism.ticks.length.x", 16 | "prism.ticks.length.x.top", 17 | "prism.ticks.length.x.bottom", 18 | "prism.ticks.length.y", 19 | "prism.ticks.length.y.left", 20 | "prism.ticks.length.y.right") %in% names(ggplot2::get_element_tree())) 21 | ) 22 | 23 | # test that validate_x_position works where length(x) < nrow(data) 24 | expect_equal(ggprism:::validate_x_position(1, df), rep(1, 60)) 25 | 26 | # test that validate_y_position works where length(y) < nrow(data) 27 | expect_equal(ggprism:::validate_y_position(1, df), rep(1, 60)) 28 | 29 | # test that keep_only_tbl_df_classes works 30 | df2 <- df 31 | class(df2) <- c("data.frame", "orange") 32 | 33 | expect_equal( 34 | class(ggprism:::keep_only_tbl_df_classes(df2)), 35 | c("data.frame") 36 | ) 37 | 38 | #### Sanity checks ------------------------------------------------------------- 39 | # test that validate_x_position throws an error when x column is not in data 40 | expect_error( 41 | ggprism:::validate_x_position("banana", df), 42 | "can't find the x variable 'banana' in the data" 43 | ) 44 | 45 | # test that validate_y_position throws an error when y column is not in data 46 | expect_error( 47 | ggprism:::validate_y_position("apple", df), 48 | "can't find the y.position variable 'apple' in the data" 49 | ) 50 | 51 | # test that guess_signif_label_column throws an error if no suitable label is found 52 | expect_error( 53 | ggprism:::guess_signif_label_column(df), 54 | "label is missing" 55 | ) 56 | -------------------------------------------------------------------------------- /data-raw/datasets/wings.csv: -------------------------------------------------------------------------------- 1 | sex,genotype,wing.size,cell.size,cell.number 2 | male,Tps1MIC/+,-2.445017,6.329025,-8.405062 3 | male,Tps1MIC/+,-1.142889,-2.531728,1.25547 4 | male,Tps1MIC/+,1.455219,-5.166006,6.803182 5 | male,Tps1MIC/+,1.844366,3.201701,-1.480092 6 | male,Tps1MIC/+,3.030013,0.253081,2.598231 7 | male,Tps1MIC/+,-0.330525,6.329025,-6.419754 8 | male,Tps1MIC/+,-6.34361,-2.531728,-4.071426 9 | male,Tps1MIC/+,-0.972908,-1.158935,0.020831 10 | male,Tps1MIC/+,4.537038,1.706024,2.611813 11 | male,Tps1MIC/+,0.368314,-6.430459,7.086808 12 | male,Tps1MIC,-4.199131,0.253081,-4.600616 13 | male,Tps1MIC,-6.678317,-7.661637,0.896067 14 | male,Tps1MIC,-9.610334,-11.168157,1.583684 15 | male,Tps1MIC,-6.710183,-8.860837,2.188742 16 | male,Tps1MIC,-11.676253,-10.029287,-1.994563 17 | male,Tps1MIC,-1.721539,-2.531728,0.662781 18 | male,Tps1MIC,-14.813824,-3.86691,-11.535289 19 | male,Tps1MIC,-7.491572,3.201701,-10.511281 20 | male,Tps1MIC,-3.921209,-6.430459,2.510152 21 | male,Tps1MIC,-12.448115,-6.430459,-6.587532 22 | female,Tps1MIC/+,-1.007863,-3.208433,2.07247 23 | female,Tps1MIC/+,2.336861,3.583959,-1.398159 24 | female,Tps1MIC/+,-1.872462,-7.745538,6.157081 25 | female,Tps1MIC/+,0.139267,5.433672,-5.208255 26 | female,Tps1MIC/+,-0.161252,-6.281181,6.320685 27 | female,Tps1MIC/+,-2.674089,-1.59524,-1.290759 28 | female,Tps1MIC/+,-0.097263,7.350648,-7.120865 29 | female,Tps1MIC/+,3.208401,5.433672,-2.303016 30 | female,Tps1MIC/+,3.052936,1.798028,1.033744 31 | female,Tps1MIC/+,-2.924538,-4.769587,1.737075 32 | female,Tps1MIC,-11.133473,-7.745538,-3.861738 33 | female,Tps1MIC,-13.139732,-13.172271,-0.159175 34 | female,Tps1MIC,-7.993199,-9.164837,1.090741 35 | female,Tps1MIC,-12.192983,-9.164837,-3.523694 36 | female,Tps1MIC,-5.789996,-3.208433,-2.858469 37 | female,Tps1MIC,-18.36484,-14.430644,-4.785208 38 | female,Tps1MIC,-5.650834,-13.172271,8.448879 39 | female,Tps1MIC,-7.964903,-9.164837,1.12183 40 | female,Tps1MIC,-8.117213,-7.745538,-0.598665 41 | female,Tps1MIC,-9.360133,-6.281181,-3.475426 42 | -------------------------------------------------------------------------------- /inst/examples/ex-scale_shape_prism.R: -------------------------------------------------------------------------------- 1 | library(ggplot2) 2 | 3 | ## list all available shape palettes 4 | ggprism_data$shape_palettes 5 | 6 | ## define a base plot 7 | base <- ggplot(mtcars, aes(x = wt, y = mpg, 8 | shape = factor(cyl))) + 9 | geom_point(size = 3) 10 | 11 | ## works pretty much the same as ggplot2 scale_shape_manual 12 | base + 13 | scale_shape_prism(palette = "complete") 14 | 15 | ## change shape scale title in legend 16 | base + 17 | scale_shape_prism( 18 | palette = "default", 19 | name = "Cylinders" 20 | ) 21 | 22 | ## change shape labels in legend 23 | base + 24 | scale_shape_prism( 25 | palette = "default", 26 | name = "Cylinders", 27 | label = c("4 cyl", "6 cyl", "8 cyl") 28 | ) 29 | 30 | ## change shape labels in legend with a function 31 | base + 32 | scale_shape_prism( 33 | palette = "default", 34 | name = "Cylinders", 35 | label = function(x) paste(x, "cyl") 36 | ) 37 | 38 | ## change order of shapes in legend 39 | base + 40 | scale_shape_prism( 41 | palette = "default", 42 | name = "Cylinders", 43 | label = function(x) paste(x, "cyl"), 44 | breaks = c(8, 4, 6) 45 | ) 46 | 47 | ## to change which shape is assigned to which cyl 48 | ## you need to change the factor levels in the underlying data 49 | base <- ggplot(mtcars, aes(x = wt, y = mpg, 50 | shape = factor(cyl, levels = c(6, 4, 8)))) + 51 | geom_point(size = 3) 52 | 53 | base + 54 | scale_shape_prism( 55 | palette = "default", 56 | name = "Cylinders" 57 | ) 58 | 59 | ## see all the shapes in a specific palette 60 | # define a function for convenience 61 | show_shapes <- function(palette) { 62 | df_shapes <- ggprism_data$shape_palettes[[palette]][, -1] 63 | df_shapes$pch_f <- factor(df_shapes$pch, levels = df_shapes$pch) 64 | 65 | ggplot(df_shapes, aes(x = 0, y = 0, shape = pch)) + 66 | geom_point(aes(shape = pch), size = 5, fill = 'red') + 67 | scale_shape_identity() + 68 | facet_wrap(~ pch_f) + 69 | theme_void() 70 | } 71 | 72 | # show the shapes in the palette "complete" 73 | show_shapes("complete") 74 | -------------------------------------------------------------------------------- /inst/tinytest/test-guide_prism_offset.R: -------------------------------------------------------------------------------- 1 | #### Setup --------------------------------------------------------------------- 2 | 3 | ## load libraries 4 | library(ggplot2) 5 | 6 | p <- ggplot(ToothGrowth, aes(x = as.factor(dose), y = len)) + 7 | geom_point(na.rm = TRUE) + 8 | theme(axis.line = element_line(colour = "black")) 9 | 10 | # grab axis function from teunbrand/ggh4x tests 11 | grab_axis <- function(plot, side = "b") { 12 | gt <- ggplotGrob(plot) 13 | grb <- gt$grobs[grep(paste0("axis-", side), gt$layout$name)][[1]] 14 | grb <- grb$children[vapply(grb$children, inherits, logical(1), "gtable")][[1]] 15 | return(grb) 16 | } 17 | 18 | #### Tests --------------------------------------------------------------------- 19 | # test that guide_prism_offset defaults work with continuous scale 20 | g1 <- p + scale_y_continuous(guide = "axis") 21 | g2 <- p + scale_y_continuous(guide = "prism_offset") 22 | 23 | expect_silent(ggplotGrob(g1)) 24 | expect_silent(ggplotGrob(g2)) 25 | 26 | control <- grab_axis(g1, side = "l") 27 | test <- grab_axis(g2, side = "l") 28 | 29 | if (!inherits(guide_none(), "Guide")) { 30 | expect_equal(length(test$grobs[[2]]$y), length(control$grobs[[2]]$y)) 31 | } else { 32 | expect_equal( 33 | length(test$grobs[[2]]$y), 34 | length(control$grobs[[1]]$y) 35 | ) 36 | } 37 | 38 | 39 | # test that guide_prism_offset defaults work with discrete scale 40 | g1 <- p + scale_x_discrete(guide = "axis") 41 | g2 <- p + scale_x_discrete(guide = "prism_offset") 42 | 43 | expect_silent(ggplotGrob(g1)) 44 | expect_silent(ggplotGrob(g2)) 45 | 46 | control <- grab_axis(g1, side = "b") 47 | test <- grab_axis(g2, side = "b") 48 | 49 | expect_equal(length(test$grobs[[1]]$x), length(control$grobs[[1]]$x)) 50 | 51 | # test that guide_prism_minor works with coord flip 52 | g1 <- p + scale_y_continuous(guide = "axis") + 53 | coord_flip() 54 | g2 <- p + scale_y_continuous(guide = "prism_offset") + 55 | coord_flip() 56 | 57 | expect_silent(ggplotGrob(g1)) 58 | expect_silent(ggplotGrob(g2)) 59 | 60 | control <- grab_axis(g1, side = "b") 61 | test <- grab_axis(g2, side = "b") 62 | 63 | expect_equal(length(test$grobs[[1]]$x), length(control$grobs[[1]]$x)) 64 | -------------------------------------------------------------------------------- /NAMESPACE: -------------------------------------------------------------------------------- 1 | # Generated by roxygen2: do not edit by hand 2 | 3 | S3method(guide_gengrob,prism_bracket) 4 | S3method(guide_gengrob,prism_minor) 5 | S3method(guide_gengrob,prism_offset) 6 | S3method(guide_gengrob,prism_offset_minor) 7 | S3method(guide_geom,prism_axis) 8 | S3method(guide_merge,prism_axis) 9 | S3method(guide_train,prism_axis) 10 | S3method(guide_train,prism_minor) 11 | S3method(guide_train,prism_offset_minor) 12 | S3method(guide_transform,prism_axis) 13 | export(GeomBracket) 14 | export(GeomTicks) 15 | export(StatBracket) 16 | export(add_pvalue) 17 | export(annotation_ticks) 18 | export(guide_prism_bracket) 19 | export(guide_prism_minor) 20 | export(guide_prism_offset) 21 | export(guide_prism_offset_minor) 22 | export(preview_theme) 23 | export(prism_color_pal) 24 | export(prism_colour_pal) 25 | export(prism_fill_pal) 26 | export(prism_shape_pal) 27 | export(scale_color_prism) 28 | export(scale_colour_prism) 29 | export(scale_fill_prism) 30 | export(scale_shape_prism) 31 | export(theme_prism) 32 | import(ggplot2) 33 | importFrom(digest,digest) 34 | importFrom(ggplot2,guide_geom) 35 | importFrom(ggplot2,guide_merge) 36 | importFrom(ggplot2,guide_train) 37 | importFrom(ggplot2,guide_transform) 38 | importFrom(glue,glue) 39 | importFrom(glue,glue_collapse) 40 | importFrom(glue,glue_data) 41 | importFrom(grid,gList) 42 | importFrom(grid,gTree) 43 | importFrom(grid,gpar) 44 | importFrom(grid,grid.draw) 45 | importFrom(grid,grobHeight) 46 | importFrom(grid,grobWidth) 47 | importFrom(grid,segmentsGrob) 48 | importFrom(grid,textGrob) 49 | importFrom(grid,unit) 50 | importFrom(grid,unit.c) 51 | importFrom(grid,viewport) 52 | importFrom(gtable,gtable_col) 53 | importFrom(gtable,gtable_height) 54 | importFrom(gtable,gtable_row) 55 | importFrom(gtable,gtable_width) 56 | importFrom(rlang,"!!") 57 | importFrom(rlang,"%||%") 58 | importFrom(rlang,":=") 59 | importFrom(rlang,abort) 60 | importFrom(rlang,ensym) 61 | importFrom(rlang,exec) 62 | importFrom(rlang,is_bool) 63 | importFrom(rlang,warn) 64 | importFrom(scales,alpha) 65 | importFrom(scales,manual_pal) 66 | importFrom(stats,setNames) 67 | importFrom(tibble,deframe) 68 | importFrom(utils,getFromNamespace) 69 | importFrom(utils,packageVersion) 70 | -------------------------------------------------------------------------------- /data-raw/fill-palettes.R: -------------------------------------------------------------------------------- 1 | # Extract Fill Colours from Prism Colour Schemes 2 | # 3 | # Extract themes from Prism colour scheme .txt files. Text files were 4 | # generated from .clr files included with an installed version of Prism on 5 | # MacOS using a Swift script. 6 | # 7 | # See: 8 | # 9 | # - https://stackoverflow.com/questions/49379341 10 | # 11 | library(readr) 12 | library(dplyr) 13 | library(purrr) 14 | library(here) 15 | 16 | scheme_dir <- "data-raw/schemes" 17 | 18 | scheme_files <- dir(scheme_dir, pattern = "\\.txt$", 19 | full.names = TRUE, recursive = TRUE) 20 | 21 | process_prism_fill <- function(path) { 22 | fill_palette <- read_delim(path, delim = " ", 23 | col_names = c("name", "r", "g", "b", "value")) %>% 24 | select(name, value) %>% 25 | filter(grepl("dataSetBarFillColor", name)) %>% 26 | pull(value) 27 | } 28 | 29 | 30 | fill_palettes <- map(scheme_files, process_prism_fill) 31 | 32 | names(fill_palettes) <- tools::file_path_sans_ext(basename(scheme_files)) 33 | 34 | # extract second fill palette for special cases 35 | special_cases <- dir(scheme_dir, pattern = "(neon|warm_and_sunny|winter_bright)\\.txt$", 36 | full.names = TRUE, recursive = TRUE) 37 | 38 | process_special_case <- function(path) { 39 | fill_palette_alt <- read_delim(path, delim = " ", 40 | col_names = c("name", "r", "g", "b", "value")) %>% 41 | select(name, value) %>% 42 | filter(grepl("dataSetBarPatternColor", name)) %>% 43 | pull(value) 44 | } 45 | 46 | fill_palettes_alt <- map(special_cases, process_special_case) 47 | 48 | names(fill_palettes_alt) <- paste0(tools::file_path_sans_ext(basename(special_cases)),"2") 49 | 50 | # combine all fill palettes in a single list 51 | fill_palettes <- c(fill_palettes, fill_palettes_alt) 52 | 53 | # remove neon and replace with neon2 54 | fill_palettes <- within(fill_palettes, rm("neon")) 55 | names(fill_palettes) <- gsub("neon2", "neon", names(fill_palettes)) 56 | 57 | # sort alphabetically 58 | fill_palettes <- fill_palettes[order(names(fill_palettes))] 59 | 60 | cat(yaml::as.yaml(fill_palettes), 61 | file = here("data-raw", "fill-palettes.yml")) 62 | -------------------------------------------------------------------------------- /inst/tinytest/test-guide_prism_minor.R: -------------------------------------------------------------------------------- 1 | #### Setup --------------------------------------------------------------------- 2 | 3 | ## load libraries 4 | library(ggplot2) 5 | 6 | p <- ggplot(ToothGrowth, aes(x = as.factor(dose), y = len)) + 7 | geom_point(na.rm = TRUE) + 8 | theme(axis.line = element_line(colour = "black")) 9 | 10 | # grab axis function from teunbrand/ggh4x tests 11 | grab_axis <- function(plot, side = "b") { 12 | gt <- ggplotGrob(plot) 13 | grb <- gt$grobs[grep(paste0("axis-", side), gt$layout$name)][[1]] 14 | grb <- grb$children[vapply(grb$children, inherits, logical(1), "gtable")][[1]] 15 | return(grb) 16 | } 17 | 18 | #### Tests --------------------------------------------------------------------- 19 | # test that guide_prism_minor defaults work 20 | g1 <- p + scale_y_continuous(guide = "axis") 21 | g2 <- p + scale_y_continuous(guide = "prism_minor") 22 | 23 | expect_silent(ggplotGrob(g1)) 24 | expect_silent(ggplotGrob(g2)) 25 | 26 | control <- grab_axis(g1, side = "l") 27 | test <- grab_axis(g2, side = "l") 28 | 29 | if (!inherits(guide_none(), "Guide")) { 30 | expect_equal(length(test$grobs[[2]]$y), (length(control$grobs[[2]]$y) * 2) + 2) 31 | } else { 32 | expect_equal(length(test$grobs[[2]]$y), (length(control$grobs[[1]]$y) * 2) + 2) 33 | } 34 | 35 | # test that guide_prism_minor works with coord flip 36 | g1 <- p + scale_y_continuous(guide = "axis") + 37 | coord_flip() 38 | g2 <- p + scale_y_continuous(guide = "prism_minor") + 39 | coord_flip() 40 | 41 | expect_silent(ggplotGrob(g1)) 42 | expect_silent(ggplotGrob(g2)) 43 | 44 | control <- grab_axis(g1, side = "b") 45 | test <- grab_axis(g2, side = "b") 46 | 47 | expect_equal(length(test$grobs[[1]]$x), (length(control$grobs[[1]]$x) * 2) + 2) 48 | 49 | # test that prism.ticks.length theme element works 50 | g <- p + scale_y_continuous(guide = "prism_minor") + 51 | theme(prism.ticks.length = unit(20, "pt")) 52 | 53 | expect_silent(ggplotGrob(g)) 54 | 55 | test <- grab_axis(g, side = "l")$grobs[[2]]$x 56 | expect_equal(length(unique(test)), 3) 57 | 58 | # test that guide_prism_minor produces error with no minor breaks 59 | g1 <- p + scale_x_discrete(guide = "prism_minor") 60 | g2 <- p + scale_y_continuous(guide = "prism_minor", minor_breaks = NULL) 61 | 62 | expect_error(ggplotGrob(g1)) 63 | expect_error(ggplotGrob(g2)) 64 | -------------------------------------------------------------------------------- /inst/tinytest/test-guide_prism_offset_minor.R: -------------------------------------------------------------------------------- 1 | #### Setup --------------------------------------------------------------------- 2 | 3 | ## load libraries 4 | library(ggplot2) 5 | 6 | p <- ggplot(ToothGrowth, aes(x = as.factor(dose), y = len)) + 7 | geom_point(na.rm = TRUE) + 8 | theme(axis.line = element_line(colour = "black")) 9 | 10 | # grab axis function from teunbrand/ggh4x tests 11 | grab_axis <- function(plot, side = "b") { 12 | gt <- ggplotGrob(plot) 13 | grb <- gt$grobs[grep(paste0("axis-", side), gt$layout$name)][[1]] 14 | grb <- grb$children[vapply(grb$children, inherits, logical(1), "gtable")][[1]] 15 | return(grb) 16 | } 17 | 18 | #### Tests --------------------------------------------------------------------- 19 | # test that guide_prism_offset_minor defaults work 20 | g1 <- p + scale_y_continuous(guide = "axis") 21 | g2 <- p + scale_y_continuous(guide = "prism_offset_minor") 22 | 23 | expect_silent(ggplotGrob(g1)) 24 | expect_silent(ggplotGrob(g2)) 25 | 26 | control <- grab_axis(g1, side = "l") 27 | test <- grab_axis(g2, side = "l") 28 | 29 | if (!inherits(guide_none(), "Guide")) { 30 | expect_equal(length(test$grobs[[2]]$y), (length(control$grobs[[2]]$y) * 2) + 2) 31 | } else { 32 | expect_equal(length(test$grobs[[2]]$y), (length(control$grobs[[1]]$y) * 2) + 2) 33 | } 34 | 35 | # test that guide_prism_offset_minor works with coord flip 36 | g1 <- p + scale_y_continuous(guide = "axis") + 37 | coord_flip() 38 | g2 <- p + scale_y_continuous(guide = "prism_offset_minor") + 39 | coord_flip() 40 | 41 | expect_silent(ggplotGrob(g1)) 42 | expect_silent(ggplotGrob(g2)) 43 | 44 | control <- grab_axis(g1, side = "b") 45 | test <- grab_axis(g2, side = "b") 46 | 47 | expect_equal(length(test$grobs[[1]]$x), (length(control$grobs[[1]]$x) * 2) + 2) 48 | 49 | # test that prism.ticks.length theme element works 50 | g <- p + scale_y_continuous(guide = "prism_offset_minor") + 51 | theme(prism.ticks.length = unit(20, "pt")) 52 | 53 | expect_silent(ggplotGrob(g)) 54 | 55 | test <- grab_axis(g, side = "l")$grobs[[2]]$x 56 | expect_equal(length(unique(test)), 3) 57 | 58 | # test that guide_prism_minor produces error with no minor breaks 59 | g1 <- p + scale_x_discrete(guide = "prism_offset_minor") 60 | g2 <- p + scale_y_continuous(guide = "prism_offset_minor", minor_breaks = NULL) 61 | 62 | expect_error(ggplotGrob(g1)) 63 | expect_error(ggplotGrob(g2)) 64 | -------------------------------------------------------------------------------- /inst/examples/ex-guide_prism_minor.R: -------------------------------------------------------------------------------- 1 | library(ggplot2) 2 | 3 | ## base plot 4 | base <- ggplot(mtcars, aes(x = wt, y = mpg)) + 5 | geom_point() 6 | 7 | ## add minor ticks to x and y axes 8 | base + 9 | scale_x_continuous( 10 | limits = c(0, 6), 11 | guide = "prism_minor" 12 | ) + 13 | scale_y_continuous( 14 | limits = c(10, 35), 15 | guide = "prism_minor" 16 | ) 17 | 18 | ## you can also use the guides function to add minor ticks 19 | base + 20 | guides(x = "prism_minor", y = "prism_minor") 21 | 22 | ## adjust number of minor ticks by adjusting minor breaks 23 | base + 24 | scale_x_continuous( 25 | limits = c(0, 6), 26 | minor_breaks = seq(0, 6, 0.5), 27 | guide = "prism_minor" 28 | ) + 29 | scale_y_continuous( 30 | limits = c(10, 35), 31 | minor_breaks = seq(10, 35, 1.25), 32 | guide = "prism_minor" 33 | ) 34 | 35 | ## adjust the length of major ticks with the usual axis.ticks.length element 36 | base + 37 | scale_x_continuous( 38 | limits = c(0, 6), 39 | minor_breaks = seq(0, 6, 0.5), 40 | guide = "prism_minor" 41 | ) + 42 | scale_y_continuous( 43 | limits = c(10, 35), 44 | minor_breaks = seq(10, 35, 1.25), 45 | guide = "prism_minor" 46 | ) + 47 | theme( 48 | axis.ticks.length = unit(10, "pt") 49 | ) 50 | 51 | ## adjust the length of minor ticks with a new prism.ticks.length element 52 | base + 53 | scale_x_continuous( 54 | limits = c(0, 6), 55 | minor_breaks = seq(0, 6, 0.5), 56 | guide = "prism_minor" 57 | ) + 58 | scale_y_continuous( 59 | limits = c(10, 35), 60 | minor_breaks = seq(10, 35, 1.25), 61 | guide = "prism_minor" 62 | ) + 63 | theme( 64 | axis.ticks.length = unit(10, "pt"), 65 | prism.ticks.length = unit(5, "pt") 66 | ) 67 | 68 | ## to get log10 minor ticks just use a log10 scale and set the minor breaks 69 | ggplot(msleep, aes(bodywt, brainwt)) + 70 | geom_point(na.rm = TRUE) + 71 | scale_x_log10(limits = c(1e0, 1e4), 72 | minor_breaks = rep(1:9, 4)*(10^rep(0:3, each = 9)), 73 | guide = "prism_minor") 74 | 75 | ## change colour with the usual axis.ticks element 76 | base + 77 | scale_x_continuous( 78 | limits = c(0, 6), 79 | minor_breaks = seq(0, 6, 0.5), 80 | guide = "prism_minor" 81 | ) + 82 | scale_y_continuous( 83 | limits = c(10, 35), 84 | minor_breaks = seq(10, 35, 1.25), 85 | guide = "prism_minor" 86 | ) + 87 | theme( 88 | axis.ticks.length = unit(10, "pt"), 89 | prism.ticks.length = unit(5, "pt"), 90 | axis.ticks = element_line(colour = "red") 91 | ) 92 | -------------------------------------------------------------------------------- /data-raw/schemes/starry.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 0 #000000 4 | axisLabelColor 0 0 0 #000000 5 | axisTitleColor 0 0 0 #000000 6 | graphTitleColor 0 0 0 #000000 7 | objectTextColor 0 0 0 #000000 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 0 0 #000000 10 | objectLinesColor 0 0 0 #000000 11 | objectPatternColor 0 0 0 #000000 12 | embeddedTableBorderColor 0 0 0 #000000 13 | embeddedTableLineUnderTitleColor 0 0 0 #000000 14 | embeddedTableLineNextToRowTitleColor 0 0 0 #000000 15 | embeddedTableTextColor 0 0 0 #000000 16 | embeddedTableGridColor 0 0 0 #000000 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 50 50 50 #323232 20 | dataSetBarPatternColor1 50 50 50 #323232 21 | dataSetFillColor1 50 50 50 #323232 22 | dataSetLineColor1 50 50 50 #323232 23 | dataSetBorderColor1 0 0 0 #000000 24 | dataSetBackgroundColor1 50 50 50 #323232 25 | dataSetErrorColor1 0 0 0 #000000 26 | dataSetLegendColor1 0 0 0 #000000 27 | dataSetRowTitleColor1 0 0 0 #000000 28 | dataSetBarFillColor2 27 99 147 #1B6393 29 | dataSetBarPatternColor2 27 99 147 #1B6393 30 | dataSetFillColor2 27 99 147 #1B6393 31 | dataSetLineColor2 27 99 147 #1B6393 32 | dataSetBorderColor2 4 46 61 #042E3D 33 | dataSetBackgroundColor2 27 99 147 #1B6393 34 | dataSetErrorColor2 4 46 61 #042E3D 35 | dataSetLegendColor2 0 0 0 #000000 36 | dataSetRowTitleColor2 0 0 0 #000000 37 | dataSetBarFillColor3 252 211 81 #FCD351 38 | dataSetBarPatternColor3 252 211 81 #FCD351 39 | dataSetFillColor3 252 211 81 #FCD351 40 | dataSetLineColor3 252 211 81 #FCD351 41 | dataSetBorderColor3 118 90 34 #765A22 42 | dataSetBackgroundColor3 252 211 81 #FCD351 43 | dataSetErrorColor3 118 90 34 #765A22 44 | dataSetLegendColor3 0 0 0 #000000 45 | dataSetRowTitleColor3 0 0 0 #000000 46 | dataSetBarFillColor4 199 227 204 #C7E3CC 47 | dataSetBarPatternColor4 199 227 204 #C7E3CC 48 | dataSetFillColor4 199 227 204 #C7E3CC 49 | dataSetLineColor4 199 227 204 #C7E3CC 50 | dataSetBorderColor4 68 114 109 #44726D 51 | dataSetBackgroundColor4 199 227 204 #C7E3CC 52 | dataSetErrorColor4 68 114 109 #44726D 53 | dataSetLegendColor4 0 0 0 #000000 54 | dataSetRowTitleColor4 0 0 0 #000000 55 | dataSetBarFillColor5 248 238 193 #F8EEC1 56 | dataSetBarPatternColor5 248 238 193 #F8EEC1 57 | dataSetFillColor5 248 238 193 #F8EEC1 58 | dataSetLineColor5 248 238 193 #F8EEC1 59 | dataSetBorderColor5 154 147 67 #9A9343 60 | dataSetBackgroundColor5 248 238 193 #F8EEC1 61 | dataSetErrorColor5 154 147 67 #9A9343 62 | dataSetLegendColor5 0 0 0 #000000 63 | dataSetRowTitleColor5 0 0 0 #000000 64 | -------------------------------------------------------------------------------- /data-raw/schemes/waves.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 0 #000000 4 | axisLabelColor 0 0 0 #000000 5 | axisTitleColor 0 0 0 #000000 6 | graphTitleColor 0 0 0 #000000 7 | objectTextColor 0 0 0 #000000 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 0 0 #000000 10 | objectLinesColor 0 0 0 #000000 11 | objectPatternColor 0 0 0 #000000 12 | embeddedTableBorderColor 0 0 0 #000000 13 | embeddedTableLineUnderTitleColor 0 0 0 #000000 14 | embeddedTableLineNextToRowTitleColor 0 0 0 #000000 15 | embeddedTableTextColor 0 0 0 #000000 16 | embeddedTableGridColor 0 0 0 #000000 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 46 88 164 #2E58A4 20 | dataSetBarPatternColor1 46 88 164 #2E58A4 21 | dataSetFillColor1 46 88 164 #2E58A4 22 | dataSetLineColor1 46 88 164 #2E58A4 23 | dataSetBorderColor1 3 20 49 #031431 24 | dataSetBackgroundColor1 46 88 164 #2E58A4 25 | dataSetErrorColor1 3 20 49 #031431 26 | dataSetLegendColor1 0 0 0 #000000 27 | dataSetRowTitleColor1 0 0 0 #000000 28 | dataSetBarFillColor2 182 157 113 #B69D71 29 | dataSetBarPatternColor2 182 157 113 #B69D71 30 | dataSetFillColor2 182 157 113 #B69D71 31 | dataSetLineColor2 182 157 113 #B69D71 32 | dataSetBorderColor2 111 90 53 #6F5A35 33 | dataSetBackgroundColor2 182 157 113 #B69D71 34 | dataSetErrorColor2 111 90 53 #6F5A35 35 | dataSetLegendColor2 0 0 0 #000000 36 | dataSetRowTitleColor2 0 0 0 #000000 37 | dataSetBarFillColor3 227 222 212 #E3DED4 38 | dataSetBarPatternColor3 227 222 212 #E3DED4 39 | dataSetFillColor3 227 222 212 #E3DED4 40 | dataSetLineColor3 227 222 212 #E3DED4 41 | dataSetBorderColor3 99 97 93 #63615D 42 | dataSetBackgroundColor3 227 222 212 #E3DED4 43 | dataSetErrorColor3 99 97 93 #63615D 44 | dataSetLegendColor3 0 0 0 #000000 45 | dataSetRowTitleColor3 0 0 0 #000000 46 | dataSetBarFillColor4 112 175 199 #70AFC7 47 | dataSetBarPatternColor4 112 175 199 #70AFC7 48 | dataSetFillColor4 112 175 199 #70AFC7 49 | dataSetLineColor4 112 175 199 #70AFC7 50 | dataSetBorderColor4 51 86 95 #33565F 51 | dataSetBackgroundColor4 112 175 199 #70AFC7 52 | dataSetErrorColor4 51 86 95 #33565F 53 | dataSetLegendColor4 0 0 0 #000000 54 | dataSetRowTitleColor4 0 0 0 #000000 55 | dataSetBarFillColor5 79 83 87 #4F5357 56 | dataSetBarPatternColor5 79 83 87 #4F5357 57 | dataSetFillColor5 79 83 87 #4F5357 58 | dataSetLineColor5 79 83 87 #4F5357 59 | dataSetBorderColor5 39 41 43 #27292B 60 | dataSetBackgroundColor5 79 83 87 #4F5357 61 | dataSetErrorColor5 39 41 43 #27292B 62 | dataSetLegendColor5 0 0 0 #000000 63 | dataSetRowTitleColor5 0 0 0 #000000 64 | -------------------------------------------------------------------------------- /inst/tinytest/test-annotation_ticks.R: -------------------------------------------------------------------------------- 1 | #### Setup --------------------------------------------------------------------- 2 | 3 | ## load libraries 4 | library(ggplot2) 5 | 6 | p <- ggplot(msleep, aes(bodywt, brainwt)) + geom_point(na.rm = TRUE) 7 | 8 | #### Tests --------------------------------------------------------------------- 9 | 10 | # test that the function with default arguments works 11 | g <- p + annotation_ticks() 12 | 13 | expect_silent(ggplotGrob(g)) 14 | 15 | # test that the function recognises the sides argument 16 | g <- p + annotation_ticks(sides = "trbl") 17 | 18 | expect_silent(ggplotGrob(g)) 19 | expect_equal(length(layer_grob(g, 2L)[[1]]$children), 4) 20 | 21 | expect_error(p + annotation_ticks(sides = "banana")) 22 | 23 | # test that the type argument works 24 | g1 <- p + annotation_ticks(type = "both") 25 | g2 <- p + annotation_ticks(type = "major") 26 | g3 <- p + annotation_ticks(type = "minor") 27 | 28 | expect_silent(ggplotGrob(g1)) 29 | expect_silent(ggplotGrob(g2)) 30 | expect_silent(ggplotGrob(g3)) 31 | 32 | expect_equal(length(layer_grob(g1, 2L)[[1]]$children[[1]]$x0), 8) 33 | expect_equal(length(layer_grob(g2, 2L)[[1]]$children[[1]]$x0), 5) 34 | expect_equal(length(layer_grob(g3, 2L)[[1]]$children[[1]]$x0), 3) 35 | 36 | expect_error(p + annotation_ticks(type = "banana")) 37 | 38 | # test that ticks can go outside 39 | g <- p + annotation_ticks(outside = TRUE) + 40 | coord_cartesian(clip = "off") 41 | 42 | expect_silent(ggplotGrob(g)) 43 | 44 | ticks <- layer_grob(g, 2L)[[1]]$children[[1]]$y1 45 | expect_equal( 46 | grid::convertUnit(ticks, "pt", valueOnly = TRUE), 47 | c(rep(-4.8, 5), rep(-2.4, 3)) 48 | ) 49 | 50 | # test that tick lengths can be set 51 | g <- p + annotation_ticks( 52 | type = "both", 53 | tick.length = unit(20, "pt"), 54 | minor.length = unit(10, "pt") 55 | ) 56 | 57 | expect_silent(ggplotGrob(g)) 58 | layer_grob(g, 2L) 59 | 60 | expect_identical(layer_grob(g, 2L)[[1]]$children[[1]]$y1[1], unit(20, "pt")) 61 | expect_identical(layer_grob(g, 2L)[[1]]$children[[1]]$y1[8], unit(10, "pt")) 62 | 63 | # test that you can set the colour with both spellings 64 | g1 <- p + annotation_ticks(colour = "red") 65 | g2 <- p + annotation_ticks(color = "red") 66 | 67 | expect_silent(ggplotGrob(g1)) 68 | expect_identical(layer_grob(g1, 2L)[[1]]$children[[1]]$gp$col, "#FF0000FF") 69 | 70 | expect_silent(ggplotGrob(g2)) 71 | expect_identical(layer_grob(g2, 2L)[[1]]$children[[1]]$gp$col, "#FF0000FF") 72 | 73 | #### Sanity checks ------------------------------------------------------------- 74 | # test that warning occurs if both colour and color are set 75 | expect_warning(p + annotation_ticks(colour = "red", color = "blue")) 76 | -------------------------------------------------------------------------------- /inst/tinytest/test-guide_prism_bracket.R: -------------------------------------------------------------------------------- 1 | #### Setup --------------------------------------------------------------------- 2 | 3 | ## load libraries 4 | library(ggplot2) 5 | 6 | p <- ggplot(ToothGrowth, aes(x = as.factor(dose), y = len)) + 7 | geom_point(na.rm = TRUE) + 8 | theme(axis.line = element_line(colour = "black")) 9 | 10 | # grab axis function from teunbrand/ggh4x tests 11 | grab_axis <- function(plot, side = "b") { 12 | gt <- ggplotGrob(plot) 13 | grb <- gt$grobs[grep(paste0("axis-", side), gt$layout$name)][[1]] 14 | grb <- grb$children[vapply(grb$children, inherits, logical(1), "gtable")][[1]] 15 | return(grb) 16 | } 17 | 18 | #### Tests --------------------------------------------------------------------- 19 | 20 | # test that guide_prism_bracket defaults work 21 | g1 <- p + scale_x_discrete(guide = "axis") 22 | g2 <- p + scale_x_discrete(guide = "prism_bracket") 23 | 24 | expect_equal(dim(ggplotGrob(g1)), c(16, 13)) 25 | expect_equal(dim(ggplotGrob(g2)), c(16, 13)) 26 | 27 | control <- grab_axis(g1, side = "b") 28 | test <- grab_axis(g2, side = "b") 29 | 30 | expect_equal(length(test$grobs[[1]]$x), length(control$grobs[[1]]$x) * 2) 31 | 32 | # test that guide_prism_bracket works with coord flip 33 | g1 <- p + scale_x_discrete(guide = "axis") + 34 | coord_flip() 35 | g2 <- p + scale_x_discrete(guide = "prism_bracket") + 36 | coord_flip() 37 | 38 | expect_silent(ggplotGrob(g1)) 39 | expect_silent(ggplotGrob(g2)) 40 | 41 | control <- grab_axis(g1, side = "l") 42 | test <- grab_axis(g2, side = "l") 43 | 44 | if (!inherits(guide_none(), "Guide")) { 45 | expect_equal(length(test$grobs[[1]]$x), length(control$grobs[[1]]$x) * 2) 46 | } else { 47 | expect_equal(length(test$grobs[[1]]$x), length(control$grobs[[2]]$x) * 2) 48 | } 49 | 50 | # test that guide_prism_bracket works with y axis and continuous scale 51 | g1 <- p + scale_y_continuous(guide = "axis") 52 | g2 <- p + scale_y_continuous(guide = "prism_bracket") 53 | 54 | expect_silent(ggplotGrob(g1)) 55 | expect_silent(ggplotGrob(g2)) 56 | 57 | control <- grab_axis(g1, side = "l") 58 | test <- grab_axis(g2, side = "l") 59 | 60 | # p + scale_x_discrete(position = "right", guide = "prism_bracket") 61 | 62 | # test that bracket width can be adjusted or left missing 63 | g1 <- p + scale_x_discrete(guide = "prism_bracket") 64 | g2 <- p + scale_x_discrete(guide = guide_prism_bracket(width = (0.8 + 0.01 * 3) / 3)) 65 | 66 | expect_silent(ggplotGrob(g1)) 67 | expect_silent(ggplotGrob(g2)) 68 | 69 | control <- grab_axis(g1, side = "b") 70 | test <- grab_axis(g2, side = "b") 71 | 72 | control$grobs[[1]]$x 73 | test$grobs[[1]]$x 74 | 75 | expect_equal(control$grobs[[1]]$x, test$grobs[[1]]$x) 76 | 77 | # test that bracket direction can be adjusted 78 | g <- p + scale_x_discrete(guide = guide_prism_bracket(outside = FALSE)) 79 | 80 | expect_silent(ggplotGrob(g)) 81 | -------------------------------------------------------------------------------- /inst/examples/ex-guide_prism_offset_minor.R: -------------------------------------------------------------------------------- 1 | library(ggplot2) 2 | 3 | ## base plot 4 | base <- ggplot(mtcars, aes(x = wt, y = mpg)) + 5 | geom_point() + 6 | theme(axis.line = element_line(colour = "black")) 7 | 8 | ## add minor ticks to x and y axes 9 | base + 10 | scale_x_continuous( 11 | limits = c(0, 6), 12 | guide = "prism_offset_minor" 13 | ) + 14 | scale_y_continuous( 15 | limits = c(10, 35), 16 | guide = "prism_offset_minor" 17 | ) 18 | 19 | ## you can also use the guides function to add minor ticks 20 | base + 21 | guides(x = "prism_offset_minor", y = "prism_offset_minor") 22 | 23 | ## adjust number of minor ticks by adjusting minor breaks 24 | base + 25 | scale_x_continuous( 26 | limits = c(0, 6), 27 | minor_breaks = seq(0, 6, 0.5), 28 | guide = "prism_offset_minor" 29 | ) + 30 | scale_y_continuous( 31 | limits = c(10, 35), 32 | minor_breaks = seq(10, 35, 1.25), 33 | guide = "prism_offset_minor" 34 | ) 35 | 36 | ## adjust the length of major ticks with the usual axis.ticks.length element 37 | base + 38 | scale_x_continuous( 39 | limits = c(0, 6), 40 | minor_breaks = seq(0, 6, 0.5), 41 | guide = "prism_offset_minor" 42 | ) + 43 | scale_y_continuous( 44 | limits = c(10, 35), 45 | minor_breaks = seq(10, 35, 1.25), 46 | guide = "prism_offset_minor" 47 | ) + 48 | theme( 49 | axis.ticks.length = unit(10, "pt") 50 | ) 51 | 52 | ## adjust the length of minor ticks with a new prism.ticks.length element 53 | base + 54 | scale_x_continuous( 55 | limits = c(0, 6), 56 | minor_breaks = seq(0, 6, 0.5), 57 | guide = "prism_offset_minor" 58 | ) + 59 | scale_y_continuous( 60 | limits = c(10, 35), 61 | minor_breaks = seq(10, 35, 1.25), 62 | guide = "prism_offset_minor" 63 | ) + 64 | theme( 65 | axis.ticks.length = unit(10, "pt"), 66 | prism.ticks.length = unit(5, "pt") 67 | ) 68 | 69 | ## to get log10 minor ticks just use a log10 scale and set the minor breaks 70 | ggplot(msleep, aes(bodywt, brainwt)) + 71 | geom_point(na.rm = TRUE) + 72 | scale_x_log10(limits = c(1e0, 1e4), 73 | minor_breaks = rep(1:9, 4)*(10^rep(0:3, each = 9)), 74 | guide = "prism_offset_minor") + 75 | theme(axis.line = element_line(colour = "black")) 76 | 77 | ## change colour and tick length with the usual elements 78 | base + 79 | scale_x_continuous( 80 | limits = c(0, 6), 81 | minor_breaks = seq(0, 6, 0.5), 82 | guide = "prism_offset_minor" 83 | ) + 84 | scale_y_continuous( 85 | limits = c(10, 35), 86 | minor_breaks = seq(10, 35, 1.25), 87 | guide = "prism_offset_minor" 88 | ) + 89 | theme( 90 | axis.ticks.length = unit(10, "pt"), 91 | prism.ticks.length = unit(5, "pt"), 92 | axis.ticks = element_line(colour = "red"), 93 | axis.line = element_line(colour = "blue") 94 | ) 95 | -------------------------------------------------------------------------------- /data-raw/schemes/inferno.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 0 #000000 4 | axisLabelColor 0 0 0 #000000 5 | axisTitleColor 0 0 0 #000000 6 | graphTitleColor 0 0 0 #000000 7 | objectTextColor 0 0 0 #000000 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 0 0 #000000 10 | objectLinesColor 0 0 0 #000000 11 | objectPatternColor 0 0 0 #000000 12 | embeddedTableBorderColor 0 0 0 #000000 13 | embeddedTableLineUnderTitleColor 0 0 0 #000000 14 | embeddedTableLineNextToRowTitleColor 0 0 0 #000000 15 | embeddedTableTextColor 0 0 0 #000000 16 | embeddedTableGridColor 0 0 0 #000000 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 0 0 4 #000004 20 | dataSetBarPatternColor1 0 0 4 #000004 21 | dataSetFillColor1 0 0 4 #000004 22 | dataSetLineColor1 0 0 4 #000004 23 | dataSetBorderColor1 0 0 0 #000000 24 | dataSetBackgroundColor1 0 0 4 #000004 25 | dataSetErrorColor1 0 0 0 #000000 26 | dataSetLegendColor1 0 0 0 #000000 27 | dataSetRowTitleColor1 0 0 4 #000004 28 | dataSetBarFillColor2 66 10 104 #420A68 29 | dataSetBarPatternColor2 66 10 104 #420A68 30 | dataSetFillColor2 66 10 104 #420A68 31 | dataSetLineColor2 66 10 104 #420A68 32 | dataSetBorderColor2 0 0 0 #000000 33 | dataSetBackgroundColor2 66 10 104 #420A68 34 | dataSetErrorColor2 0 0 0 #000000 35 | dataSetLegendColor2 0 0 0 #000000 36 | dataSetRowTitleColor2 66 10 104 #420A68 37 | dataSetBarFillColor3 147 38 103 #932667 38 | dataSetBarPatternColor3 147 38 103 #932667 39 | dataSetFillColor3 147 38 103 #932667 40 | dataSetLineColor3 147 38 103 #932667 41 | dataSetBorderColor3 0 0 0 #000000 42 | dataSetBackgroundColor3 147 38 103 #932667 43 | dataSetErrorColor3 0 0 0 #000000 44 | dataSetLegendColor3 0 0 0 #000000 45 | dataSetRowTitleColor3 147 38 103 #932667 46 | dataSetBarFillColor4 221 81 58 #DD513A 47 | dataSetBarPatternColor4 221 81 58 #DD513A 48 | dataSetFillColor4 221 81 58 #DD513A 49 | dataSetLineColor4 221 81 58 #DD513A 50 | dataSetBorderColor4 0 0 0 #000000 51 | dataSetBackgroundColor4 221 81 58 #DD513A 52 | dataSetErrorColor4 0 0 0 #000000 53 | dataSetLegendColor4 0 0 0 #000000 54 | dataSetRowTitleColor4 221 81 58 #DD513A 55 | dataSetBarFillColor5 252 165 10 #FCA50A 56 | dataSetBarPatternColor5 252 165 10 #FCA50A 57 | dataSetFillColor5 252 165 10 #FCA50A 58 | dataSetLineColor5 252 165 10 #FCA50A 59 | dataSetBorderColor5 0 0 0 #000000 60 | dataSetBackgroundColor5 252 165 10 #FCA50A 61 | dataSetErrorColor5 0 0 0 #000000 62 | dataSetLegendColor5 0 0 0 #000000 63 | dataSetRowTitleColor5 252 165 10 #FCA50A 64 | dataSetBarFillColor6 252 255 164 #FCFFA4 65 | dataSetBarPatternColor6 252 255 164 #FCFFA4 66 | dataSetFillColor6 252 255 164 #FCFFA4 67 | dataSetLineColor6 252 255 164 #FCFFA4 68 | dataSetBorderColor6 0 0 0 #000000 69 | dataSetBackgroundColor6 252 255 164 #FCFFA4 70 | dataSetErrorColor6 0 0 0 #000000 71 | dataSetLegendColor6 0 0 0 #000000 72 | dataSetRowTitleColor6 252 255 164 #FCFFA4 73 | -------------------------------------------------------------------------------- /data-raw/schemes/magma.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 0 #000000 4 | axisLabelColor 0 0 0 #000000 5 | axisTitleColor 0 0 0 #000000 6 | graphTitleColor 0 0 0 #000000 7 | objectTextColor 0 0 0 #000000 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 0 0 #000000 10 | objectLinesColor 0 0 0 #000000 11 | objectPatternColor 0 0 0 #000000 12 | embeddedTableBorderColor 0 0 0 #000000 13 | embeddedTableLineUnderTitleColor 0 0 0 #000000 14 | embeddedTableLineNextToRowTitleColor 0 0 0 #000000 15 | embeddedTableTextColor 0 0 0 #000000 16 | embeddedTableGridColor 0 0 0 #000000 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 0 0 4 #000004 20 | dataSetBarPatternColor1 0 0 4 #000004 21 | dataSetFillColor1 0 0 4 #000004 22 | dataSetLineColor1 0 0 4 #000004 23 | dataSetBorderColor1 0 0 0 #000000 24 | dataSetBackgroundColor1 0 0 4 #000004 25 | dataSetErrorColor1 0 0 0 #000000 26 | dataSetLegendColor1 0 0 0 #000000 27 | dataSetRowTitleColor1 0 0 4 #000004 28 | dataSetBarFillColor2 59 15 112 #3B0F70 29 | dataSetBarPatternColor2 59 15 112 #3B0F70 30 | dataSetFillColor2 59 15 112 #3B0F70 31 | dataSetLineColor2 59 15 112 #3B0F70 32 | dataSetBorderColor2 0 0 0 #000000 33 | dataSetBackgroundColor2 59 15 112 #3B0F70 34 | dataSetErrorColor2 0 0 0 #000000 35 | dataSetLegendColor2 0 0 0 #000000 36 | dataSetRowTitleColor2 59 15 112 #3B0F70 37 | dataSetBarFillColor3 140 41 129 #8C2981 38 | dataSetBarPatternColor3 140 41 129 #8C2981 39 | dataSetFillColor3 140 41 129 #8C2981 40 | dataSetLineColor3 140 41 129 #8C2981 41 | dataSetBorderColor3 0 0 0 #000000 42 | dataSetBackgroundColor3 140 41 129 #8C2981 43 | dataSetErrorColor3 0 0 0 #000000 44 | dataSetLegendColor3 0 0 0 #000000 45 | dataSetRowTitleColor3 140 41 129 #8C2981 46 | dataSetBarFillColor4 222 73 104 #DE4968 47 | dataSetBarPatternColor4 222 73 104 #DE4968 48 | dataSetFillColor4 222 73 104 #DE4968 49 | dataSetLineColor4 222 73 104 #DE4968 50 | dataSetBorderColor4 0 0 0 #000000 51 | dataSetBackgroundColor4 222 73 104 #DE4968 52 | dataSetErrorColor4 0 0 0 #000000 53 | dataSetLegendColor4 0 0 0 #000000 54 | dataSetRowTitleColor4 222 73 104 #DE4968 55 | dataSetBarFillColor5 254 159 109 #FE9F6D 56 | dataSetBarPatternColor5 254 159 109 #FE9F6D 57 | dataSetFillColor5 254 159 109 #FE9F6D 58 | dataSetLineColor5 254 159 109 #FE9F6D 59 | dataSetBorderColor5 0 0 0 #000000 60 | dataSetBackgroundColor5 254 159 109 #FE9F6D 61 | dataSetErrorColor5 0 0 0 #000000 62 | dataSetLegendColor5 0 0 0 #000000 63 | dataSetRowTitleColor5 254 159 109 #FE9F6D 64 | dataSetBarFillColor6 252 253 191 #FCFDBF 65 | dataSetBarPatternColor6 252 253 191 #FCFDBF 66 | dataSetFillColor6 252 253 191 #FCFDBF 67 | dataSetLineColor6 252 253 191 #FCFDBF 68 | dataSetBorderColor6 0 0 0 #000000 69 | dataSetBackgroundColor6 252 253 191 #FCFDBF 70 | dataSetErrorColor6 0 0 0 #000000 71 | dataSetLegendColor6 0 0 0 #000000 72 | dataSetRowTitleColor6 252 253 191 #FCFDBF 73 | -------------------------------------------------------------------------------- /data-raw/schemes/viridis.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 0 #000000 4 | axisLabelColor 0 0 0 #000000 5 | axisTitleColor 0 0 0 #000000 6 | graphTitleColor 0 0 0 #000000 7 | objectTextColor 0 0 0 #000000 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 0 0 #000000 10 | objectLinesColor 0 0 0 #000000 11 | objectPatternColor 0 0 0 #000000 12 | embeddedTableBorderColor 0 0 0 #000000 13 | embeddedTableLineUnderTitleColor 0 0 0 #000000 14 | embeddedTableLineNextToRowTitleColor 0 0 0 #000000 15 | embeddedTableTextColor 0 0 0 #000000 16 | embeddedTableGridColor 0 0 0 #000000 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 68 1 84 #440154 20 | dataSetBarPatternColor1 68 1 84 #440154 21 | dataSetFillColor1 68 1 84 #440154 22 | dataSetLineColor1 68 1 84 #440154 23 | dataSetBorderColor1 0 0 0 #000000 24 | dataSetBackgroundColor1 68 1 84 #440154 25 | dataSetErrorColor1 0 0 0 #000000 26 | dataSetLegendColor1 0 0 0 #000000 27 | dataSetRowTitleColor1 68 1 84 #440154 28 | dataSetBarFillColor2 65 68 135 #414487 29 | dataSetBarPatternColor2 65 68 135 #414487 30 | dataSetFillColor2 65 68 135 #414487 31 | dataSetLineColor2 65 68 135 #414487 32 | dataSetBorderColor2 0 0 0 #000000 33 | dataSetBackgroundColor2 65 68 135 #414487 34 | dataSetErrorColor2 0 0 0 #000000 35 | dataSetLegendColor2 0 0 0 #000000 36 | dataSetRowTitleColor2 65 68 135 #414487 37 | dataSetBarFillColor3 42 120 142 #2A788E 38 | dataSetBarPatternColor3 42 120 142 #2A788E 39 | dataSetFillColor3 42 120 142 #2A788E 40 | dataSetLineColor3 42 120 142 #2A788E 41 | dataSetBorderColor3 0 0 0 #000000 42 | dataSetBackgroundColor3 42 120 142 #2A788E 43 | dataSetErrorColor3 0 0 0 #000000 44 | dataSetLegendColor3 0 0 0 #000000 45 | dataSetRowTitleColor3 42 120 142 #2A788E 46 | dataSetBarFillColor4 34 168 132 #22A884 47 | dataSetBarPatternColor4 34 168 132 #22A884 48 | dataSetFillColor4 34 168 132 #22A884 49 | dataSetLineColor4 34 168 132 #22A884 50 | dataSetBorderColor4 0 0 0 #000000 51 | dataSetBackgroundColor4 34 168 132 #22A884 52 | dataSetErrorColor4 0 0 0 #000000 53 | dataSetLegendColor4 0 0 0 #000000 54 | dataSetRowTitleColor4 34 168 132 #22A884 55 | dataSetBarFillColor5 122 209 81 #7AD151 56 | dataSetBarPatternColor5 122 209 81 #7AD151 57 | dataSetFillColor5 122 209 81 #7AD151 58 | dataSetLineColor5 122 209 81 #7AD151 59 | dataSetBorderColor5 0 0 0 #000000 60 | dataSetBackgroundColor5 122 209 81 #7AD151 61 | dataSetErrorColor5 0 0 0 #000000 62 | dataSetLegendColor5 0 0 0 #000000 63 | dataSetRowTitleColor5 122 209 81 #7AD151 64 | dataSetBarFillColor6 253 231 37 #FDE725 65 | dataSetBarPatternColor6 253 231 37 #FDE725 66 | dataSetFillColor6 253 231 37 #FDE725 67 | dataSetLineColor6 253 231 37 #FDE725 68 | dataSetBorderColor6 0 0 0 #000000 69 | dataSetBackgroundColor6 253 231 37 #FDE725 70 | dataSetErrorColor6 0 0 0 #000000 71 | dataSetLegendColor6 0 0 0 #000000 72 | dataSetRowTitleColor6 253 231 37 #FDE725 73 | -------------------------------------------------------------------------------- /data-raw/schemes/plasma.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 0 #000000 4 | axisLabelColor 0 0 0 #000000 5 | axisTitleColor 0 0 0 #000000 6 | graphTitleColor 0 0 0 #000000 7 | objectTextColor 0 0 0 #000000 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 0 0 #000000 10 | objectLinesColor 0 0 0 #000000 11 | objectPatternColor 0 0 0 #000000 12 | embeddedTableBorderColor 0 0 0 #000000 13 | embeddedTableLineUnderTitleColor 0 0 0 #000000 14 | embeddedTableLineNextToRowTitleColor 0 0 0 #000000 15 | embeddedTableTextColor 0 0 0 #000000 16 | embeddedTableGridColor 0 0 0 #000000 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 13 8 135 #0D0887 20 | dataSetBarPatternColor1 13 8 135 #0D0887 21 | dataSetFillColor1 13 8 135 #0D0887 22 | dataSetLineColor1 13 8 135 #0D0887 23 | dataSetBorderColor1 0 0 0 #000000 24 | dataSetBackgroundColor1 13 8 135 #0D0887 25 | dataSetErrorColor1 0 0 0 #000000 26 | dataSetLegendColor1 0 0 0 #000000 27 | dataSetRowTitleColor1 13 8 135 #0D0887 28 | dataSetBarFillColor2 106 0 168 #6A00A8 29 | dataSetBarPatternColor2 106 0 168 #6A00A8 30 | dataSetFillColor2 106 0 168 #6A00A8 31 | dataSetLineColor2 106 0 168 #6A00A8 32 | dataSetBorderColor2 0 0 0 #000000 33 | dataSetBackgroundColor2 106 0 168 #6A00A8 34 | dataSetErrorColor2 0 0 0 #000000 35 | dataSetLegendColor2 0 0 0 #000000 36 | dataSetRowTitleColor2 106 0 168 #6A00A8 37 | dataSetBarFillColor3 177 42 144 #B12A90 38 | dataSetBarPatternColor3 177 42 144 #B12A90 39 | dataSetFillColor3 177 42 144 #B12A90 40 | dataSetLineColor3 177 42 144 #B12A90 41 | dataSetBorderColor3 0 0 0 #000000 42 | dataSetBackgroundColor3 177 42 144 #B12A90 43 | dataSetErrorColor3 0 0 0 #000000 44 | dataSetLegendColor3 0 0 0 #000000 45 | dataSetRowTitleColor3 177 42 144 #B12A90 46 | dataSetBarFillColor4 225 100 98 #E16462 47 | dataSetBarPatternColor4 225 100 98 #E16462 48 | dataSetFillColor4 225 100 98 #E16462 49 | dataSetLineColor4 225 100 98 #E16462 50 | dataSetBorderColor4 0 0 0 #000000 51 | dataSetBackgroundColor4 225 100 98 #E16462 52 | dataSetErrorColor4 0 0 0 #000000 53 | dataSetLegendColor4 0 0 0 #000000 54 | dataSetRowTitleColor4 225 100 98 #E16462 55 | dataSetBarFillColor5 252 166 54 #FCA636 56 | dataSetBarPatternColor5 252 166 54 #FCA636 57 | dataSetFillColor5 252 166 54 #FCA636 58 | dataSetLineColor5 252 166 54 #FCA636 59 | dataSetBorderColor5 0 0 0 #000000 60 | dataSetBackgroundColor5 252 166 54 #FCA636 61 | dataSetErrorColor5 0 0 0 #000000 62 | dataSetLegendColor5 0 0 0 #000000 63 | dataSetRowTitleColor5 252 166 54 #FCA636 64 | dataSetBarFillColor6 240 249 33 #F0F921 65 | dataSetBarPatternColor6 240 249 33 #F0F921 66 | dataSetFillColor6 240 249 33 #F0F921 67 | dataSetLineColor6 240 249 33 #F0F921 68 | dataSetBorderColor6 0 0 0 #000000 69 | dataSetBackgroundColor6 240 249 33 #F0F921 70 | dataSetErrorColor6 0 0 0 #000000 71 | dataSetLegendColor6 0 0 0 #000000 72 | dataSetRowTitleColor6 240 248 32 #F0F820 73 | -------------------------------------------------------------------------------- /data-raw/schemes/colorblind_safe.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 0 #000000 4 | axisLabelColor 0 0 0 #000000 5 | axisTitleColor 0 0 0 #000000 6 | graphTitleColor 0 0 0 #000000 7 | objectTextColor 0 0 0 #000000 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 0 0 #000000 10 | objectLinesColor 0 0 0 #000000 11 | objectPatternColor 0 0 0 #000000 12 | embeddedTableBorderColor 0 0 0 #000000 13 | embeddedTableLineUnderTitleColor 0 0 0 #000000 14 | embeddedTableLineNextToRowTitleColor 0 0 0 #000000 15 | embeddedTableTextColor 0 0 0 #000000 16 | embeddedTableGridColor 0 0 0 #000000 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 0 0 0 #000000 20 | dataSetBarPatternColor1 0 0 0 #000000 21 | dataSetFillColor1 0 0 0 #000000 22 | dataSetLineColor1 0 0 0 #000000 23 | dataSetBorderColor1 0 0 0 #000000 24 | dataSetBackgroundColor1 0 0 0 #000000 25 | dataSetErrorColor1 0 0 0 #000000 26 | dataSetLegendColor1 0 0 0 #000000 27 | dataSetRowTitleColor1 0 0 0 #000000 28 | dataSetBarFillColor2 255 0 102 #FF0066 29 | dataSetBarPatternColor2 255 0 102 #FF0066 30 | dataSetFillColor2 255 0 102 #FF0066 31 | dataSetLineColor2 255 0 102 #FF0066 32 | dataSetBorderColor2 255 0 102 #FF0066 33 | dataSetBackgroundColor2 255 0 102 #FF0066 34 | dataSetErrorColor2 255 0 102 #FF0066 35 | dataSetLegendColor2 0 0 0 #000000 36 | dataSetRowTitleColor2 0 0 0 #000000 37 | dataSetBarFillColor3 16 127 128 #107F80 38 | dataSetBarPatternColor3 16 127 128 #107F80 39 | dataSetFillColor3 16 127 128 #107F80 40 | dataSetLineColor3 16 127 128 #107F80 41 | dataSetBorderColor3 16 127 128 #107F80 42 | dataSetBackgroundColor3 16 127 128 #107F80 43 | dataSetErrorColor3 16 127 128 #107F80 44 | dataSetLegendColor3 0 0 0 #000000 45 | dataSetRowTitleColor3 0 0 0 #000000 46 | dataSetBarFillColor4 64 0 127 #40007F 47 | dataSetBarPatternColor4 64 0 127 #40007F 48 | dataSetFillColor4 64 0 127 #40007F 49 | dataSetLineColor4 64 0 127 #40007F 50 | dataSetBorderColor4 64 0 127 #40007F 51 | dataSetBackgroundColor4 64 0 127 #40007F 52 | dataSetErrorColor4 64 0 127 #40007F 53 | dataSetLegendColor4 0 0 0 #000000 54 | dataSetRowTitleColor4 0 0 0 #000000 55 | dataSetBarFillColor5 170 102 255 #AA66FF 56 | dataSetBarPatternColor5 170 102 255 #AA66FF 57 | dataSetFillColor5 170 102 255 #AA66FF 58 | dataSetLineColor5 170 102 255 #AA66FF 59 | dataSetBorderColor5 170 102 255 #AA66FF 60 | dataSetBackgroundColor5 170 102 255 #AA66FF 61 | dataSetErrorColor5 170 102 255 #AA66FF 62 | dataSetLegendColor5 0 0 0 #000000 63 | dataSetRowTitleColor5 0 0 0 #000000 64 | dataSetBarFillColor6 102 204 254 #66CCFE 65 | dataSetBarPatternColor6 102 204 254 #66CCFE 66 | dataSetFillColor6 102 204 254 #66CCFE 67 | dataSetLineColor6 102 204 254 #66CCFE 68 | dataSetBorderColor6 102 204 254 #66CCFE 69 | dataSetBackgroundColor6 102 204 254 #66CCFE 70 | dataSetErrorColor6 102 204 254 #66CCFE 71 | dataSetLegendColor6 0 0 0 #000000 72 | dataSetRowTitleColor6 0 0 0 #000000 73 | -------------------------------------------------------------------------------- /data-raw/schemes/pearl.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 0 #000000 4 | axisLabelColor 0 0 0 #000000 5 | axisTitleColor 0 0 0 #000000 6 | graphTitleColor 0 0 0 #000000 7 | objectTextColor 0 0 0 #000000 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 0 0 #000000 10 | objectLinesColor 0 0 0 #000000 11 | objectPatternColor 0 0 0 #000000 12 | embeddedTableBorderColor 0 0 0 #000000 13 | embeddedTableLineUnderTitleColor 0 0 0 #000000 14 | embeddedTableLineNextToRowTitleColor 0 0 0 #000000 15 | embeddedTableTextColor 0 0 0 #000000 16 | embeddedTableGridColor 0 0 0 #000000 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 0 0 0 #000000 20 | dataSetBarPatternColor1 0 0 0 #000000 21 | dataSetFillColor1 0 0 0 #000000 22 | dataSetLineColor1 0 0 0 #000000 23 | dataSetBorderColor1 0 0 0 #000000 24 | dataSetBackgroundColor1 0 0 0 #000000 25 | dataSetErrorColor1 0 0 0 #000000 26 | dataSetLegendColor1 0 0 0 #000000 27 | dataSetRowTitleColor1 0 0 0 #000000 28 | dataSetBarFillColor2 232 167 97 #E8A761 29 | dataSetBarPatternColor2 232 167 97 #E8A761 30 | dataSetFillColor2 232 167 97 #E8A761 31 | dataSetLineColor2 232 167 97 #E8A761 32 | dataSetBorderColor2 77 64 47 #4D402F 33 | dataSetBackgroundColor2 232 167 97 #E8A761 34 | dataSetErrorColor2 77 64 47 #4D402F 35 | dataSetLegendColor2 0 0 0 #000000 36 | dataSetRowTitleColor2 0 0 0 #000000 37 | dataSetBarFillColor3 155 179 210 #9BB3D2 38 | dataSetBarPatternColor3 155 179 210 #9BB3D2 39 | dataSetFillColor3 155 179 210 #9BB3D2 40 | dataSetLineColor3 155 179 210 #9BB3D2 41 | dataSetBorderColor3 34 69 111 #22456F 42 | dataSetBackgroundColor3 155 179 210 #9BB3D2 43 | dataSetErrorColor3 34 69 111 #22456F 44 | dataSetLegendColor3 0 0 0 #000000 45 | dataSetRowTitleColor3 0 0 0 #000000 46 | dataSetBarFillColor4 229 147 138 #E5938A 47 | dataSetBarPatternColor4 229 147 138 #E5938A 48 | dataSetFillColor4 229 147 138 #E5938A 49 | dataSetLineColor4 229 147 138 #E5938A 50 | dataSetBorderColor4 182 53 48 #B63530 51 | dataSetBackgroundColor4 229 147 138 #E5938A 52 | dataSetErrorColor4 182 53 48 #B63530 53 | dataSetLegendColor4 0 0 0 #000000 54 | dataSetRowTitleColor4 0 0 0 #000000 55 | dataSetBarFillColor5 189 193 196 #BDC1C4 56 | dataSetBarPatternColor5 189 193 196 #BDC1C4 57 | dataSetFillColor5 189 193 196 #BDC1C4 58 | dataSetLineColor5 189 193 196 #BDC1C4 59 | dataSetBorderColor5 133 130 122 #85827A 60 | dataSetBackgroundColor5 189 193 196 #BDC1C4 61 | dataSetErrorColor5 133 130 122 #85827A 62 | dataSetLegendColor5 0 0 0 #000000 63 | dataSetRowTitleColor5 0 0 0 #000000 64 | dataSetBarFillColor6 242 206 192 #F2CEC0 65 | dataSetBarPatternColor6 242 206 192 #F2CEC0 66 | dataSetFillColor6 242 206 192 #F2CEC0 67 | dataSetLineColor6 242 206 192 #F2CEC0 68 | dataSetBorderColor6 112 84 67 #705443 69 | dataSetBackgroundColor6 242 206 192 #F2CEC0 70 | dataSetErrorColor6 112 84 67 #705443 71 | dataSetLegendColor6 0 0 0 #000000 72 | dataSetRowTitleColor6 0 0 0 #000000 73 | -------------------------------------------------------------------------------- /data-raw/colour-palettes.R: -------------------------------------------------------------------------------- 1 | # Extract Outline Colours from Prism Colour Schemes 2 | # 3 | # Extract themes from Prism colour scheme .txt files. Text files were 4 | # generated from .clr files included with an installed version of Prism on 5 | # MacOS using a Swift script. 6 | # 7 | # See: 8 | # 9 | # - https://stackoverflow.com/questions/49379341 10 | # 11 | library(readr) 12 | library(dplyr) 13 | library(purrr) 14 | library(here) 15 | 16 | scheme_dir <- "data-raw/schemes" 17 | 18 | scheme_files <- dir(scheme_dir, pattern = "\\.txt$", 19 | full.names = TRUE, recursive = TRUE) %>% 20 | set_names(tools::file_path_sans_ext(basename(.))) 21 | 22 | process_prism_colour <- function(path, regex) { 23 | border_palette <- read_delim(path, delim = " ", 24 | col_names = c("name", "r", "g", "b", "value")) %>% 25 | select(name, value) %>% 26 | filter(grepl(regex, name)) %>% 27 | pull(value) 28 | } 29 | 30 | # extract border palette from all colour schemes, then 31 | # replace the border palettes from some schemes with the line palette 32 | bad_borders <- paste(c("diazo", "magma", "plasma", "inferno", "viridis", 33 | "warm_and_sunny"), collapse = "|") %>% 34 | grep(., scheme_files, value = TRUE) %>% 35 | as.list() 36 | 37 | border_palettes <- scheme_files %>% 38 | map(process_prism_colour, regex = "dataSetBorderColor") %>% 39 | within(rm(list = names(bad_borders))) 40 | 41 | border_palettes2 <- bad_borders %>% 42 | map(process_prism_colour, regex = "dataSetLineColor") 43 | 44 | border_palettes <- c(border_palettes, border_palettes2) 45 | 46 | # extract line palettes from 17 colour schemes 47 | good_lines <- paste(c("flames", "floral", "mustard_field", "^pastels", 48 | "pearl", "prism_dark", "prism_light", "quiet", 49 | "spring", "starry", "waves", "blueprint", "fir", "ocean", 50 | "sunny_garden", "wool_muffler"), collapse = "|") %>% 51 | grep(., scheme_files, value = TRUE) %>% 52 | as.list() 53 | 54 | line_palettes <- good_lines %>% 55 | map(process_prism_colour, regex = "dataSetLineColor") 56 | 57 | # extract error bar palettes from 7 colour schemes 58 | good_errors <- paste(c("stained_glass", "warm_pastels", 59 | "blueprint", "fir", "ocean", 60 | "sunny_garden", "wool_muffler"), collapse = "|") %>% 61 | grep(., scheme_files, value = TRUE) %>% 62 | as.list() 63 | 64 | error_palettes <- good_errors %>% 65 | map(process_prism_colour, regex = "dataSetErrorColor") 66 | 67 | # combine all colour palettes in 1 list and give them unique names 68 | colour_palettes <- c(border_palettes, line_palettes, error_palettes) 69 | 70 | names(colour_palettes) <- make.unique(names(colour_palettes), sep = "") %>% 71 | sub("2", "3", .) %>% 72 | sub("1", "2", .) 73 | 74 | # sort alphabetically 75 | colour_palettes <- colour_palettes[order(names(colour_palettes))] 76 | 77 | cat(yaml::as.yaml(colour_palettes), 78 | file = here("data-raw", "colour-palettes.yml")) 79 | 80 | -------------------------------------------------------------------------------- /inst/examples/ex-annotation_ticks.R: -------------------------------------------------------------------------------- 1 | ## Generally it is better to use the guide_prism_minor function. 2 | ## However annotation_ticks is useful in a few specific situations. 3 | library(ggplot2) 4 | 5 | ## easily put ticks without labels around a plot with a border 6 | ggplot(mtcars, aes(x = mpg, y = disp)) + 7 | geom_point() + 8 | theme_prism(border = TRUE) + 9 | coord_cartesian(clip = "off") + 10 | annotation_ticks(sides = "tr", type = "major", outside = TRUE) + 11 | theme(plot.margin = unit(c(4, 4, 4, 4), "mm")) 12 | 13 | # the same but with minor ticks as well 14 | ggplot(mtcars, aes(x = mpg, y = disp)) + 15 | geom_point() + 16 | scale_x_continuous(guide = "prism_minor") + 17 | scale_y_continuous(guide = "prism_minor") + 18 | theme_prism(border = TRUE) + 19 | coord_cartesian(clip = "off") + 20 | annotation_ticks(sides = "tr", type = "both", outside = TRUE) + 21 | theme(plot.margin = unit(c(4, 4, 4, 4), "mm")) 22 | 23 | # you can adjust the appearance of annotation_ticks 24 | ggplot(mtcars, aes(x = mpg, y = disp)) + 25 | geom_point() + 26 | theme_prism(border = TRUE) + 27 | coord_cartesian(clip = "off") + 28 | annotation_ticks( 29 | sides = "tr", 30 | type = "major", 31 | outside = TRUE, 32 | tick.length = unit(10, "pt"), 33 | colour = "red", 34 | linewidth = 2, 35 | linetype = "dashed", 36 | lineend = "round" 37 | ) + 38 | theme(plot.margin = unit(c(4, 4, 4, 4), "mm")) 39 | 40 | ## Unfortunately, due to the way they work, secondary axes don't always play 41 | ## well with the minor tick axes guides in this package. 42 | ## So we can use annotation_ticks instead. 43 | sample.data <- data.frame( 44 | day = as.Date("2019-01-01") + 0:99, 45 | temperature = runif(100) + seq(1, 100)^2.5 / 10000, 46 | price = runif(100) + seq(100, 1)^1.5 / 10 47 | ) 48 | 49 | # sample graph with secondary axis 50 | ggplot(sample.data, aes(x = day)) + 51 | geom_line(aes(y = temperature), colour = "magenta") + 52 | geom_line(aes(y = price / 10), colour = "blue") + 53 | scale_y_continuous(sec.axis = sec_axis(~. * 10, name = "price")) + 54 | theme_prism(border = TRUE) + 55 | coord_cartesian(clip = "off") 56 | 57 | # guide_prism_minor only works with the main axis in this case 58 | ggplot(sample.data, aes(x = day)) + 59 | geom_line(aes(y = temperature), colour = "magenta") + 60 | geom_line(aes(y = price / 10), colour = "blue") + 61 | scale_y_continuous( 62 | sec.axis = sec_axis(~. * 10, name = "price"), 63 | guide = "prism_minor" 64 | ) + 65 | theme_prism(border = TRUE) + 66 | coord_cartesian(clip = "off") 67 | 68 | # we use annotation_ticks to draw the minor ticks on the secondary axis 69 | ggplot(sample.data, aes(x = day)) + 70 | geom_line(aes(y = temperature), colour = "magenta") + 71 | geom_line(aes(y = price / 10), colour = "blue") + 72 | scale_y_continuous( 73 | sec.axis = sec_axis(~. * 10, name = "price"), 74 | guide = "prism_minor" 75 | ) + 76 | theme_prism(border = TRUE) + 77 | coord_cartesian(clip = "off") + 78 | annotation_ticks(sides = "r", type = "minor", outside = TRUE) 79 | -------------------------------------------------------------------------------- /man/theme_prism.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/theme_prism.R 3 | \name{theme_prism} 4 | \alias{theme_prism} 5 | \title{Prism themes} 6 | \usage{ 7 | theme_prism( 8 | palette = "black_and_white", 9 | base_size = 14, 10 | base_family = "sans", 11 | base_fontface = "bold", 12 | base_line_size = base_size/14, 13 | base_rect_size = base_size/14, 14 | axis_text_angle = 0, 15 | border = FALSE 16 | ) 17 | } 18 | \arguments{ 19 | \item{palette}{\code{string}. Palette name, use 20 | \code{names(ggprism_data$themes)} to show all valid palette names.} 21 | 22 | \item{base_size}{\code{numeric}. Base font size, given in \code{"pt"}.} 23 | 24 | \item{base_family}{\code{string}. Base font family, default is \code{"sans"}.} 25 | 26 | \item{base_fontface}{\code{string}. Base font face, default is \code{"bold"}.} 27 | 28 | \item{base_line_size}{\code{numeric}. Base linewidth for line elements} 29 | 30 | \item{base_rect_size}{\code{numeric}. Base linewidth for rect elements} 31 | 32 | \item{axis_text_angle}{\code{integer}. Angle of axis text in degrees. 33 | One of: \verb{0, 45, 90, 270}.} 34 | 35 | \item{border}{\code{logical}. Should a border be drawn around the plot? 36 | Clipping will occur unless e.g. \code{coord_cartesian(clip = "off")} is used.} 37 | } 38 | \value{ 39 | Returns a list-like object of class \emph{theme}. 40 | } 41 | \description{ 42 | A collection of ggplot2 themes that use palettes which mirror the 43 | colour schemes available in GraphPad Prism. 44 | } 45 | \examples{ 46 | library(ggplot2) 47 | 48 | # see ?preview_theme for a convenient function to preview ggprism themes 49 | # before using theme_prism 50 | 51 | ## base plot 52 | base <- ggplot(mpg, aes(x = displ, y = cty, colour = class)) + 53 | geom_point() 54 | 55 | ## default palette is "black_and_white" 56 | ## default base_size is 14 (compared with 11 for theme_grey) 57 | base + 58 | theme_prism() 59 | 60 | ## try some other palettes 61 | base + 62 | theme_prism(palette = "office") 63 | 64 | base + 65 | theme_prism(palette = "flames") 66 | 67 | ## try matching the theme_prism palette with same colour palette 68 | base + 69 | theme_prism(palette = "stained_glass") + 70 | scale_color_prism(palette = "stained_glass") 71 | 72 | base + 73 | theme_prism(palette = "candy_bright") + 74 | scale_color_prism(palette = "candy_bright") 75 | 76 | ## change the font face 77 | base + 78 | theme_prism(base_fontface = "plain") 79 | 80 | ## change the font family 81 | base + 82 | theme_prism(base_family = "serif") 83 | 84 | ## base_line_size scales automatically as you change base_size 85 | base + 86 | theme_prism(base_size = 10) 87 | 88 | ## but you can also change it manually 89 | base + 90 | theme_prism(base_size = 16, base_line_size = 0.8) 91 | 92 | ## easily change x axis text angle 93 | base + 94 | theme_prism(axis_text_angle = 45) 95 | 96 | ## add a border (need to turn off clipping) 97 | base + 98 | theme_prism(border = TRUE) + 99 | coord_cartesian(clip = "off") 100 | 101 | ## change border thickness 102 | base + 103 | theme_prism(border = TRUE, base_rect_size = 2) + 104 | coord_cartesian(clip = "off") 105 | } 106 | -------------------------------------------------------------------------------- /.github/workflows/rhub.yaml: -------------------------------------------------------------------------------- 1 | # R-hub's generic GitHub Actions workflow file. It's canonical location is at 2 | # https://github.com/r-hub/actions/blob/v1/workflows/rhub.yaml 3 | # You can update this file to a newer version using the rhub2 package: 4 | # 5 | # rhub::rhub_setup() 6 | # 7 | # It is unlikely that you need to modify this file manually. 8 | 9 | name: R-hub 10 | run-name: "${{ github.event.inputs.id }}: ${{ github.event.inputs.name || format('Manually run by {0}', github.triggering_actor) }}" 11 | 12 | on: 13 | workflow_dispatch: 14 | inputs: 15 | config: 16 | description: 'A comma separated list of R-hub platforms to use.' 17 | type: string 18 | default: 'gcc15' 19 | name: 20 | description: 'Run name. You can leave this empty now.' 21 | type: string 22 | id: 23 | description: 'Unique ID. You can leave this empty now.' 24 | type: string 25 | 26 | jobs: 27 | 28 | setup: 29 | runs-on: ubuntu-latest 30 | outputs: 31 | containers: ${{ steps.rhub-setup.outputs.containers }} 32 | platforms: ${{ steps.rhub-setup.outputs.platforms }} 33 | 34 | steps: 35 | # NO NEED TO CHECKOUT HERE 36 | - uses: r-hub/actions/setup@v1 37 | with: 38 | config: ${{ github.event.inputs.config }} 39 | id: rhub-setup 40 | 41 | linux-containers: 42 | needs: setup 43 | if: ${{ needs.setup.outputs.containers != '[]' }} 44 | runs-on: ubuntu-latest 45 | name: ${{ matrix.config.label }} 46 | strategy: 47 | fail-fast: false 48 | matrix: 49 | config: ${{ fromJson(needs.setup.outputs.containers) }} 50 | container: 51 | image: ${{ matrix.config.container }} 52 | 53 | steps: 54 | - uses: r-hub/actions/checkout@v1 55 | - uses: r-hub/actions/platform-info@v1 56 | with: 57 | token: ${{ secrets.RHUB_TOKEN }} 58 | job-config: ${{ matrix.config.job-config }} 59 | - uses: r-hub/actions/setup-deps@v1 60 | with: 61 | token: ${{ secrets.RHUB_TOKEN }} 62 | job-config: ${{ matrix.config.job-config }} 63 | - uses: r-hub/actions/run-check@v1 64 | with: 65 | token: ${{ secrets.RHUB_TOKEN }} 66 | job-config: ${{ matrix.config.job-config }} 67 | 68 | other-platforms: 69 | needs: setup 70 | if: ${{ needs.setup.outputs.platforms != '[]' }} 71 | runs-on: ${{ matrix.config.os }} 72 | name: ${{ matrix.config.label }} 73 | strategy: 74 | fail-fast: false 75 | matrix: 76 | config: ${{ fromJson(needs.setup.outputs.platforms) }} 77 | 78 | steps: 79 | - uses: r-hub/actions/checkout@v1 80 | - uses: r-hub/actions/setup-r@v1 81 | with: 82 | job-config: ${{ matrix.config.job-config }} 83 | token: ${{ secrets.RHUB_TOKEN }} 84 | - uses: r-hub/actions/platform-info@v1 85 | with: 86 | token: ${{ secrets.RHUB_TOKEN }} 87 | job-config: ${{ matrix.config.job-config }} 88 | - uses: r-hub/actions/setup-deps@v1 89 | with: 90 | job-config: ${{ matrix.config.job-config }} 91 | token: ${{ secrets.RHUB_TOKEN }} 92 | - uses: r-hub/actions/run-check@v1 93 | with: 94 | job-config: ${{ matrix.config.job-config }} 95 | token: ${{ secrets.RHUB_TOKEN }} 96 | -------------------------------------------------------------------------------- /man/guide_prism_offset.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/guide_prism_offset.R 3 | \name{guide_prism_offset} 4 | \alias{guide_prism_offset} 5 | \title{Offset axis guide} 6 | \usage{ 7 | guide_prism_offset( 8 | title = waiver(), 9 | check.overlap = FALSE, 10 | angle = NULL, 11 | n.dodge = 1, 12 | order = 0, 13 | position = waiver() 14 | ) 15 | } 16 | \arguments{ 17 | \item{title}{A character string or expression indicating a title of guide. 18 | If \code{NULL}, the title is not shown. By default 19 | (\code{\link[ggplot2:waiver]{waiver()}}), the name of the scale object or the name 20 | specified in \code{\link[ggplot2:labs]{labs()}} is used for the title.} 21 | 22 | \item{check.overlap}{silently remove overlapping labels, 23 | (recursively) prioritizing the first, last, and middle labels.} 24 | 25 | \item{angle}{Compared to setting the angle in \code{\link[ggplot2:theme]{theme()}} / \code{\link[ggplot2:element_text]{element_text()}}, 26 | this also uses some heuristics to automatically pick the \code{hjust} and \code{vjust} that 27 | you probably want. Can be one of the following: 28 | \itemize{ 29 | \item \code{NULL} to take the angles and \code{hjust}/\code{vjust} directly from the theme. 30 | \item \code{waiver()} to allow reasonable defaults in special cases. 31 | \item A number representing the text angle in degrees. 32 | }} 33 | 34 | \item{n.dodge}{The number of rows (for vertical axes) or columns (for 35 | horizontal axes) that should be used to render the labels. This is 36 | useful for displaying labels that would otherwise overlap.} 37 | 38 | \item{order}{A positive \code{integer} of length 1 that specifies the order of 39 | this guide among multiple guides. This controls in which order guides are 40 | merged if there are multiple guides for the same position. If 0 (default), 41 | the order is determined by a secret algorithm.} 42 | 43 | \item{position}{Where this guide should be drawn: one of top, bottom, 44 | left, or right.} 45 | } 46 | \value{ 47 | Returns a \emph{prism_offset} guide class object. 48 | } 49 | \description{ 50 | This guide draws the axis only as wide as the outermost tick marks, 51 | similar to offset axes from Prism. 52 | } 53 | \details{ 54 | Control the length of the axis by adjusting the \code{breaks} argument in 55 | \verb{scale_(x|y)_continuous()} or \verb{scale_(x|y)_discrete()}. 56 | } 57 | \examples{ 58 | library(ggplot2) 59 | 60 | ## base plot 61 | base <- ggplot(mtcars, aes(x = wt, y = mpg)) + 62 | geom_point() + 63 | theme(axis.line = element_line(colour = "black")) 64 | 65 | ## use offset guide via scale_x/y_continuous 66 | base + 67 | scale_x_continuous( 68 | limits = c(1, 6), 69 | breaks = seq(1, 6, by = 1), 70 | guide = "prism_offset" 71 | ) + 72 | scale_y_continuous( 73 | guide = "prism_offset" 74 | ) 75 | 76 | ## use offset guide via guides argument 77 | base + 78 | guides(x = "prism_offset", y = "prism_offset") + 79 | scale_x_continuous( 80 | limits = c(1, 6), 81 | breaks = seq(1, 6, by = 1) 82 | ) 83 | 84 | ## change colour and tick length with the usual elements 85 | base + 86 | scale_x_continuous( 87 | limits = c(0, 6), 88 | minor_breaks = seq(0, 6, 0.5), 89 | guide = "prism_offset" 90 | ) + 91 | scale_y_continuous( 92 | limits = c(10, 35), 93 | minor_breaks = seq(10, 35, 1.25), 94 | guide = "prism_offset" 95 | ) + 96 | theme( 97 | axis.ticks.length = unit(10, "pt"), 98 | axis.ticks = element_line(colour = "red"), 99 | axis.line = element_line(colour = "blue") 100 | ) 101 | } 102 | -------------------------------------------------------------------------------- /R/guide_methods.R: -------------------------------------------------------------------------------- 1 | 2 | #' @export 3 | #' @importFrom ggplot2 guide_train 4 | guide_train.prism_axis <- function(guide, scale, aesthetic = NULL) { 5 | 6 | aesthetic <- aesthetic %||% scale$aesthetics[1] 7 | breaks <- scale$get_breaks() 8 | 9 | empty_ticks <- base::data.frame( 10 | aesthetic = numeric(0), 11 | .value = numeric(0), 12 | .label = character(0) 13 | ) 14 | names(empty_ticks) <- c(aesthetic, ".value", ".label") 15 | 16 | if (length(intersect(scale$aesthetics, guide$available_aes)) == 0) { 17 | warn(glue( 18 | "axis guide needs appropriate scales: ", 19 | glue_collapse(guide$available_aes, ", ", last = " or ") 20 | )) 21 | guide$key <- empty_ticks 22 | } else if (length(breaks) == 0) { 23 | guide$key <- empty_ticks 24 | } else { 25 | mapped_breaks <- if (scale$is_discrete()) scale$map(breaks) else breaks 26 | ticks <- base::data.frame(setNames(list(mapped_breaks), aesthetic)) 27 | ticks$.value <- breaks 28 | ticks$.label <- scale$get_labels(breaks) 29 | 30 | guide$key <- ticks[is.finite(ticks[[aesthetic]]), ] 31 | } 32 | 33 | guide$name <- paste0(guide$name, "_", aesthetic) 34 | guide$hash <- digest(list(guide$title, guide$key$.value, 35 | guide$key$.label, guide$name, guide$is_major)) 36 | guide 37 | } 38 | 39 | #' @export 40 | #' @importFrom ggplot2 guide_transform 41 | guide_transform.prism_axis <- function(guide, coord, panel_params) { 42 | 43 | if (is.null(guide$position) || nrow(guide$key) == 0) { 44 | return(guide) 45 | } 46 | 47 | aesthetics <- names(guide$key)[!grepl("^\\.", names(guide$key))] 48 | 49 | if (all(c("x", "y") %in% aesthetics)) { 50 | guide$key <- coord$transform(guide$key, panel_params) 51 | } else { 52 | other_aesthetic <- setdiff(c("x", "y"), aesthetics) 53 | override_value <- if(guide$position %in% c("bottom", "left")) -Inf else Inf 54 | guide$key[[other_aesthetic]] <- override_value 55 | 56 | guide$key <- coord$transform(guide$key, panel_params) 57 | 58 | warn_for_guide_position(guide) 59 | } 60 | guide 61 | } 62 | 63 | warn_for_guide_position <- function(guide) { 64 | # This is trying to catch when a user specifies a position perpendicular 65 | # to the direction of the axis (e.g., a "y" axis on "top"). 66 | # The strategy is to check that two or more unique breaks are mapped 67 | # to the same value along the axis. 68 | breaks_are_unique <- !duplicated(guide$key$.value) 69 | empty <- is.null(guide$key) || prod(dim(guide$key)) == 0 || 70 | inherits(guide$key, "waiver") 71 | if (empty || sum(breaks_are_unique) == 1) { 72 | return() 73 | } 74 | 75 | if (guide$position %in% c("top", "bottom")) { 76 | position_aes <- "x" 77 | } else if(guide$position %in% c("left", "right")) { 78 | position_aes <- "y" 79 | } else { 80 | return() 81 | } 82 | 83 | if (length(unique(guide$key[[position_aes]][breaks_are_unique])) == 1) { 84 | warn(c( 85 | "Position guide is perpendicular to the intended axis", 86 | "i" = "Did you mean to specify a different guide `position`?" 87 | )) 88 | } 89 | } 90 | 91 | #' @export 92 | #' @importFrom ggplot2 guide_geom 93 | guide_geom.prism_axis <- function(guide, layers, ...) { 94 | guide 95 | } 96 | 97 | #' @export 98 | #' @importFrom ggplot2 guide_merge 99 | guide_merge.prism_axis <- function(guide, new_guide) { 100 | if (!inherits(new_guide, c("guide_none", "GuideNone"))) { 101 | warn(c( 102 | "Discarding guide on merge", 103 | "i" = "Do you have more than one guide with the same position?" 104 | )) 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /man/guide_prism_bracket.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/guide_prism_bracket.R 3 | \name{guide_prism_bracket} 4 | \alias{guide_prism_bracket} 5 | \title{Axis guide with brackets} 6 | \usage{ 7 | guide_prism_bracket( 8 | title = waiver(), 9 | check.overlap = FALSE, 10 | angle = NULL, 11 | n.dodge = 1, 12 | order = 0, 13 | position = waiver(), 14 | width = NULL, 15 | outside = TRUE 16 | ) 17 | } 18 | \arguments{ 19 | \item{title}{A character string or expression indicating a title of guide. 20 | If \code{NULL}, the title is not shown. By default 21 | (\code{\link[ggplot2:waiver]{waiver()}}), the name of the scale object or the name 22 | specified in \code{\link[ggplot2:labs]{labs()}} is used for the title.} 23 | 24 | \item{check.overlap}{silently remove overlapping labels, 25 | (recursively) prioritizing the first, last, and middle labels.} 26 | 27 | \item{angle}{Compared to setting the angle in \code{\link[ggplot2:theme]{theme()}} / \code{\link[ggplot2:element_text]{element_text()}}, 28 | this also uses some heuristics to automatically pick the \code{hjust} and \code{vjust} that 29 | you probably want. Can be one of the following: 30 | \itemize{ 31 | \item \code{NULL} to take the angles and \code{hjust}/\code{vjust} directly from the theme. 32 | \item \code{waiver()} to allow reasonable defaults in special cases. 33 | \item A number representing the text angle in degrees. 34 | }} 35 | 36 | \item{n.dodge}{The number of rows (for vertical axes) or columns (for 37 | horizontal axes) that should be used to render the labels. This is 38 | useful for displaying labels that would otherwise overlap.} 39 | 40 | \item{order}{A positive \code{integer} of length 1 that specifies the order of 41 | this guide among multiple guides. This controls in which order guides are 42 | merged if there are multiple guides for the same position. If 0 (default), 43 | the order is determined by a secret algorithm.} 44 | 45 | \item{position}{Where this guide should be drawn: one of top, bottom, 46 | left, or right.} 47 | 48 | \item{width}{\code{numeric}. Controls the width of the bracket. Try 49 | values between 0 and 1.} 50 | 51 | \item{outside}{\code{logical}. Default is \code{TRUE} and brackets point 52 | outwards. If \code{FALSE} the bracket crossbar is moved so the ticks appear 53 | to point inwards towards the plotting area.} 54 | } 55 | \value{ 56 | Returns a \emph{prism_bracket} guide class object. 57 | } 58 | \description{ 59 | This guide turns the axis into brackets drawn around each axis label. 60 | } 61 | \details{ 62 | The number of brackets can be adjusted using the \code{breaks} 63 | argument in \verb{scale_(x|y)_continuous()} or \verb{scale_(x|y)_discrete()}. 64 | } 65 | \examples{ 66 | library(ggplot2) 67 | 68 | ## base plot 69 | base <- ggplot(mpg, aes(x = as.factor(cyl), y = hwy)) + 70 | geom_jitter(width = 0.2) + 71 | theme(axis.line = element_line(colour = "black")) 72 | 73 | ## use brackets on x axis 74 | # if not specified, the width of the brackets is guessed 75 | base + scale_x_discrete(guide = "prism_bracket") 76 | 77 | # you can add brackets using the guide function as well 78 | base + guides(x = "prism_bracket") 79 | 80 | ## works with coord_flip 81 | base + scale_x_discrete(guide = "prism_bracket") + 82 | coord_flip() 83 | 84 | ## adjust bracket width 85 | base + scale_x_discrete(guide = guide_prism_bracket(width = 0.12)) 86 | 87 | ## make brackets point inward 88 | base + scale_x_discrete(guide = guide_prism_bracket(width = 0.12, outside = FALSE)) 89 | 90 | ## change colour with the usual axis.line, axis.ticks, axis.text elements 91 | base + scale_x_discrete(guide = guide_prism_bracket(width = 0.12, outside = FALSE)) + 92 | theme(axis.line.x = element_line(colour = "red"), 93 | axis.ticks.x = element_line(colour = "blue"), 94 | axis.text.x = element_text(colour = "green")) 95 | } 96 | -------------------------------------------------------------------------------- /data-raw/schemes/black_and_white.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 0 #000000 4 | axisLabelColor 0 0 0 #000000 5 | axisTitleColor 0 0 0 #000000 6 | graphTitleColor 0 0 0 #000000 7 | objectTextColor 0 0 0 #000000 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 0 0 #000000 10 | objectLinesColor 0 0 0 #000000 11 | objectPatternColor 0 0 0 #000000 12 | embeddedTableBorderColor 0 0 0 #000000 13 | embeddedTableLineUnderTitleColor 0 0 0 #000000 14 | embeddedTableLineNextToRowTitleColor 0 0 0 #000000 15 | embeddedTableTextColor 0 0 0 #000000 16 | embeddedTableGridColor 0 0 0 #000000 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 0 0 0 #000000 20 | dataSetBarPatternColor1 0 0 0 #000000 21 | dataSetFillColor1 0 0 0 #000000 22 | dataSetLineColor1 0 0 0 #000000 23 | dataSetBorderColor1 0 0 0 #000000 24 | dataSetBackgroundColor1 0 0 0 #000000 25 | dataSetErrorColor1 0 0 0 #000000 26 | dataSetLegendColor1 0 0 0 #000000 27 | dataSetRowTitleColor1 0 0 0 #000000 28 | dataSetBarFillColor2 160 160 164 #A0A0A4 29 | dataSetBarPatternColor2 160 160 164 #A0A0A4 30 | dataSetFillColor2 0 0 0 #000000 31 | dataSetLineColor2 0 0 0 #000000 32 | dataSetBorderColor2 160 160 164 #A0A0A4 33 | dataSetBackgroundColor2 160 160 164 #A0A0A4 34 | dataSetErrorColor2 0 0 0 #000000 35 | dataSetLegendColor2 0 0 0 #000000 36 | dataSetRowTitleColor2 0 0 0 #000000 37 | dataSetBarFillColor3 128 128 128 #808080 38 | dataSetBarPatternColor3 128 128 128 #808080 39 | dataSetFillColor3 0 0 0 #000000 40 | dataSetLineColor3 0 0 0 #000000 41 | dataSetBorderColor3 128 128 128 #808080 42 | dataSetBackgroundColor3 128 128 128 #808080 43 | dataSetErrorColor3 0 0 0 #000000 44 | dataSetLegendColor3 0 0 0 #000000 45 | dataSetRowTitleColor3 0 0 0 #000000 46 | dataSetBarFillColor4 212 212 212 #D4D4D4 47 | dataSetBarPatternColor4 212 212 212 #D4D4D4 48 | dataSetFillColor4 0 0 0 #000000 49 | dataSetLineColor4 0 0 0 #000000 50 | dataSetBorderColor4 212 212 212 #D4D4D4 51 | dataSetBackgroundColor4 212 212 212 #D4D4D4 52 | dataSetErrorColor4 0 0 0 #000000 53 | dataSetLegendColor4 0 0 0 #000000 54 | dataSetRowTitleColor4 0 0 0 #000000 55 | dataSetBarFillColor5 96 96 96 #606060 56 | dataSetBarPatternColor5 96 96 96 #606060 57 | dataSetFillColor5 0 0 0 #000000 58 | dataSetLineColor5 0 0 0 #000000 59 | dataSetBorderColor5 96 96 96 #606060 60 | dataSetBackgroundColor5 96 96 96 #606060 61 | dataSetErrorColor5 0 0 0 #000000 62 | dataSetLegendColor5 0 0 0 #000000 63 | dataSetRowTitleColor5 0 0 0 #000000 64 | dataSetBarFillColor6 160 160 164 #A0A0A4 65 | dataSetBarPatternColor6 160 160 164 #A0A0A4 66 | dataSetFillColor6 0 0 0 #000000 67 | dataSetLineColor6 0 0 0 #000000 68 | dataSetBorderColor6 160 160 164 #A0A0A4 69 | dataSetBackgroundColor6 160 160 164 #A0A0A4 70 | dataSetErrorColor6 0 0 0 #000000 71 | dataSetLegendColor6 0 0 0 #000000 72 | dataSetRowTitleColor6 0 0 0 #000000 73 | dataSetBarFillColor7 96 96 96 #606060 74 | dataSetBarPatternColor7 96 96 96 #606060 75 | dataSetFillColor7 0 0 0 #000000 76 | dataSetLineColor7 0 0 0 #000000 77 | dataSetBorderColor7 96 96 96 #606060 78 | dataSetBackgroundColor7 96 96 96 #606060 79 | dataSetErrorColor7 0 0 0 #000000 80 | dataSetLegendColor7 0 0 0 #000000 81 | dataSetRowTitleColor7 0 0 0 #000000 82 | dataSetBarFillColor8 232 232 232 #E8E8E8 83 | dataSetBarPatternColor8 232 232 232 #E8E8E8 84 | dataSetFillColor8 0 0 0 #000000 85 | dataSetLineColor8 0 0 0 #000000 86 | dataSetBorderColor8 232 232 232 #E8E8E8 87 | dataSetBackgroundColor8 232 232 232 #E8E8E8 88 | dataSetErrorColor8 0 0 0 #000000 89 | dataSetLegendColor8 0 0 0 #000000 90 | dataSetRowTitleColor8 0 0 0 #000000 91 | dataSetBarFillColor9 160 160 164 #A0A0A4 92 | dataSetBarPatternColor9 160 160 164 #A0A0A4 93 | dataSetFillColor9 0 0 0 #000000 94 | dataSetLineColor9 0 0 0 #000000 95 | dataSetBorderColor9 160 160 164 #A0A0A4 96 | dataSetBackgroundColor9 160 160 164 #A0A0A4 97 | dataSetErrorColor9 0 0 0 #000000 98 | dataSetLegendColor9 0 0 0 #000000 99 | dataSetRowTitleColor9 0 0 0 #000000 100 | -------------------------------------------------------------------------------- /data-raw/schemes/beer_and_ales.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 160 0 0 #A00000 4 | axisLabelColor 160 0 0 #A00000 5 | axisTitleColor 160 0 0 #A00000 6 | graphTitleColor 160 0 0 #A00000 7 | objectTextColor 160 0 0 #A00000 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 160 0 0 #A00000 10 | objectLinesColor 160 0 0 #A00000 11 | objectPatternColor 160 0 0 #A00000 12 | embeddedTableBorderColor 160 0 0 #A00000 13 | embeddedTableLineUnderTitleColor 160 0 0 #A00000 14 | embeddedTableLineNextToRowTitleColor 160 0 0 #A00000 15 | embeddedTableTextColor 160 0 0 #A00000 16 | embeddedTableGridColor 160 0 0 #A00000 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 148 100 31 #94641F 20 | dataSetBarPatternColor1 148 100 31 #94641F 21 | dataSetFillColor1 148 100 31 #94641F 22 | dataSetLineColor1 148 100 31 #94641F 23 | dataSetBorderColor1 148 100 31 #94641F 24 | dataSetBackgroundColor1 148 100 31 #94641F 25 | dataSetErrorColor1 148 100 31 #94641F 26 | dataSetLegendColor1 160 0 0 #A00000 27 | dataSetRowTitleColor1 160 0 0 #A00000 28 | dataSetBarFillColor2 197 148 78 #C5944E 29 | dataSetBarPatternColor2 197 148 78 #C5944E 30 | dataSetFillColor2 197 148 78 #C5944E 31 | dataSetLineColor2 197 148 78 #C5944E 32 | dataSetBorderColor2 197 148 78 #C5944E 33 | dataSetBackgroundColor2 197 148 78 #C5944E 34 | dataSetErrorColor2 197 148 78 #C5944E 35 | dataSetLegendColor2 160 0 0 #A00000 36 | dataSetRowTitleColor2 160 0 0 #A00000 37 | dataSetBarFillColor3 215 154 64 #D79A40 38 | dataSetBarPatternColor3 215 154 64 #D79A40 39 | dataSetFillColor3 215 154 64 #D79A40 40 | dataSetLineColor3 215 154 64 #D79A40 41 | dataSetBorderColor3 215 154 64 #D79A40 42 | dataSetBackgroundColor3 215 154 64 #D79A40 43 | dataSetErrorColor3 215 154 64 #D79A40 44 | dataSetLegendColor3 160 0 0 #A00000 45 | dataSetRowTitleColor3 160 0 0 #A00000 46 | dataSetBarFillColor4 192 181 123 #C0B57B 47 | dataSetBarPatternColor4 192 181 123 #C0B57B 48 | dataSetFillColor4 192 181 123 #C0B57B 49 | dataSetLineColor4 192 181 123 #C0B57B 50 | dataSetBorderColor4 192 181 123 #C0B57B 51 | dataSetBackgroundColor4 192 181 123 #C0B57B 52 | dataSetErrorColor4 192 181 123 #C0B57B 53 | dataSetLegendColor4 160 0 0 #A00000 54 | dataSetRowTitleColor4 160 0 0 #A00000 55 | dataSetBarFillColor5 128 64 64 #804040 56 | dataSetBarPatternColor5 128 64 64 #804040 57 | dataSetFillColor5 128 64 64 #804040 58 | dataSetLineColor5 128 64 64 #804040 59 | dataSetBorderColor5 128 64 64 #804040 60 | dataSetBackgroundColor5 128 64 64 #804040 61 | dataSetErrorColor5 128 64 64 #804040 62 | dataSetLegendColor5 160 0 0 #A00000 63 | dataSetRowTitleColor5 160 0 0 #A00000 64 | dataSetBarFillColor6 187 94 0 #BB5E00 65 | dataSetBarPatternColor6 187 94 0 #BB5E00 66 | dataSetFillColor6 187 94 0 #BB5E00 67 | dataSetLineColor6 187 94 0 #BB5E00 68 | dataSetBorderColor6 187 94 0 #BB5E00 69 | dataSetBackgroundColor6 187 94 0 #BB5E00 70 | dataSetErrorColor6 187 94 0 #BB5E00 71 | dataSetLegendColor6 160 0 0 #A00000 72 | dataSetRowTitleColor6 160 0 0 #A00000 73 | dataSetBarFillColor7 205 117 29 #CD751D 74 | dataSetBarPatternColor7 205 117 29 #CD751D 75 | dataSetFillColor7 205 117 29 #CD751D 76 | dataSetLineColor7 205 117 29 #CD751D 77 | dataSetBorderColor7 205 117 29 #CD751D 78 | dataSetBackgroundColor7 205 117 29 #CD751D 79 | dataSetErrorColor7 205 117 29 #CD751D 80 | dataSetLegendColor7 160 0 0 #A00000 81 | dataSetRowTitleColor7 160 0 0 #A00000 82 | dataSetBarFillColor8 145 0 0 #910000 83 | dataSetBarPatternColor8 145 0 0 #910000 84 | dataSetFillColor8 145 0 0 #910000 85 | dataSetLineColor8 145 0 0 #910000 86 | dataSetBorderColor8 145 0 0 #910000 87 | dataSetBackgroundColor8 145 0 0 #910000 88 | dataSetErrorColor8 145 0 0 #910000 89 | dataSetLegendColor8 160 0 0 #A00000 90 | dataSetRowTitleColor8 160 0 0 #A00000 91 | dataSetBarFillColor9 162 81 0 #A25100 92 | dataSetBarPatternColor9 162 81 0 #A25100 93 | dataSetFillColor9 162 81 0 #A25100 94 | dataSetLineColor9 162 81 0 #A25100 95 | dataSetBorderColor9 162 81 0 #A25100 96 | dataSetBackgroundColor9 162 81 0 #A25100 97 | dataSetErrorColor9 162 81 0 #A25100 98 | dataSetLegendColor9 160 0 0 #A00000 99 | dataSetRowTitleColor9 160 0 0 #A00000 -------------------------------------------------------------------------------- /data-raw/schemes/evergreen.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 128 0 #008000 4 | axisLabelColor 0 128 0 #008000 5 | axisTitleColor 0 128 0 #008000 6 | graphTitleColor 0 128 0 #008000 7 | objectTextColor 0 128 0 #008000 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 128 0 #008000 10 | objectLinesColor 0 128 0 #008000 11 | objectPatternColor 0 128 0 #008000 12 | embeddedTableBorderColor 0 0 128 #000080 13 | embeddedTableLineUnderTitleColor 0 0 128 #000080 14 | embeddedTableLineNextToRowTitleColor 0 0 128 #000080 15 | embeddedTableTextColor 0 0 128 #000080 16 | embeddedTableGridColor 0 0 128 #000080 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 0 90 0 #005A00 20 | dataSetBarPatternColor1 0 90 0 #005A00 21 | dataSetFillColor1 0 90 0 #005A00 22 | dataSetLineColor1 0 90 0 #005A00 23 | dataSetBorderColor1 0 90 0 #005A00 24 | dataSetBackgroundColor1 0 90 0 #005A00 25 | dataSetErrorColor1 0 90 0 #005A00 26 | dataSetLegendColor1 0 90 0 #005A00 27 | dataSetRowTitleColor1 0 90 0 #005A00 28 | dataSetBarFillColor2 9 153 99 #099963 29 | dataSetBarPatternColor2 9 153 99 #099963 30 | dataSetFillColor2 9 153 99 #099963 31 | dataSetLineColor2 9 153 99 #099963 32 | dataSetBorderColor2 9 153 99 #099963 33 | dataSetBackgroundColor2 9 153 99 #099963 34 | dataSetErrorColor2 9 153 99 #099963 35 | dataSetLegendColor2 0 90 0 #005A00 36 | dataSetRowTitleColor2 0 90 0 #005A00 37 | dataSetBarFillColor3 0 192 0 #00C000 38 | dataSetBarPatternColor3 0 192 0 #00C000 39 | dataSetFillColor3 0 192 0 #00C000 40 | dataSetLineColor3 0 192 0 #00C000 41 | dataSetBorderColor3 0 192 0 #00C000 42 | dataSetBackgroundColor3 0 192 0 #00C000 43 | dataSetErrorColor3 0 192 0 #00C000 44 | dataSetLegendColor3 0 90 0 #005A00 45 | dataSetRowTitleColor3 0 90 0 #005A00 46 | dataSetBarFillColor4 0 128 0 #008000 47 | dataSetBarPatternColor4 0 128 0 #008000 48 | dataSetFillColor4 0 128 0 #008000 49 | dataSetLineColor4 0 128 0 #008000 50 | dataSetBorderColor4 0 128 0 #008000 51 | dataSetBackgroundColor4 0 128 0 #008000 52 | dataSetErrorColor4 0 128 0 #008000 53 | dataSetLegendColor4 0 90 0 #005A00 54 | dataSetRowTitleColor4 0 90 0 #005A00 55 | dataSetBarFillColor5 5 190 120 #05BE78 56 | dataSetBarPatternColor5 5 190 120 #05BE78 57 | dataSetFillColor5 5 190 120 #05BE78 58 | dataSetLineColor5 5 190 120 #05BE78 59 | dataSetBorderColor5 5 190 120 #05BE78 60 | dataSetBackgroundColor5 5 190 120 #05BE78 61 | dataSetErrorColor5 5 190 120 #05BE78 62 | dataSetLegendColor5 0 90 0 #005A00 63 | dataSetRowTitleColor5 0 90 0 #005A00 64 | dataSetBarFillColor6 9 153 99 #099963 65 | dataSetBarPatternColor6 9 153 99 #099963 66 | dataSetFillColor6 9 153 99 #099963 67 | dataSetLineColor6 9 153 99 #099963 68 | dataSetBorderColor6 9 153 99 #099963 69 | dataSetBackgroundColor6 9 153 99 #099963 70 | dataSetErrorColor6 9 153 99 #099963 71 | dataSetLegendColor6 0 90 0 #005A00 72 | dataSetRowTitleColor6 0 90 0 #005A00 73 | dataSetBarFillColor7 173 222 173 #ADDEAD 74 | dataSetBarPatternColor7 173 222 173 #ADDEAD 75 | dataSetFillColor7 173 222 173 #ADDEAD 76 | dataSetLineColor7 173 222 173 #ADDEAD 77 | dataSetBorderColor7 173 222 173 #ADDEAD 78 | dataSetBackgroundColor7 173 222 173 #ADDEAD 79 | dataSetErrorColor7 173 222 173 #ADDEAD 80 | dataSetLegendColor7 0 90 0 #005A00 81 | dataSetRowTitleColor7 0 90 0 #005A00 82 | dataSetBarFillColor8 15 153 178 #0F99B2 83 | dataSetBarPatternColor8 15 153 178 #0F99B2 84 | dataSetFillColor8 15 153 178 #0F99B2 85 | dataSetLineColor8 15 153 178 #0F99B2 86 | dataSetBorderColor8 15 153 178 #0F99B2 87 | dataSetBackgroundColor8 15 153 178 #0F99B2 88 | dataSetErrorColor8 15 153 178 #0F99B2 89 | dataSetLegendColor8 0 90 0 #005A00 90 | dataSetRowTitleColor8 0 90 0 #005A00 91 | dataSetBarFillColor9 10 148 68 #0A9444 92 | dataSetBarPatternColor9 10 148 68 #0A9444 93 | dataSetFillColor9 10 148 68 #0A9444 94 | dataSetLineColor9 10 148 68 #0A9444 95 | dataSetBorderColor9 10 148 68 #0A9444 96 | dataSetBackgroundColor9 10 148 68 #0A9444 97 | dataSetErrorColor9 10 148 68 #0A9444 98 | dataSetLegendColor9 0 90 0 #005A00 99 | dataSetRowTitleColor9 0 90 0 #005A00 100 | -------------------------------------------------------------------------------- /data-raw/schemes/warm_and_sunny.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 160 0 0 #A00000 4 | axisLabelColor 160 0 0 #A00000 5 | axisTitleColor 160 0 0 #A00000 6 | graphTitleColor 160 0 0 #A00000 7 | objectTextColor 39 39 61 #27273D 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 0 0 #000000 10 | objectLinesColor 0 0 0 #000000 11 | objectPatternColor 0 0 0 #000000 12 | embeddedTableBorderColor 0 0 0 #000000 13 | embeddedTableLineUnderTitleColor 0 0 0 #000000 14 | embeddedTableLineNextToRowTitleColor 0 0 0 #000000 15 | embeddedTableTextColor 0 0 0 #000000 16 | embeddedTableGridColor 0 0 0 #000000 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 249 64 64 #F94040 20 | dataSetBarPatternColor1 249 64 64 #F94040 21 | dataSetFillColor1 249 64 64 #F94040 22 | dataSetLineColor1 249 64 64 #F94040 23 | dataSetBorderColor1 0 0 0 #000000 24 | dataSetBackgroundColor1 249 64 64 #F94040 25 | dataSetErrorColor1 249 64 64 #F94040 26 | dataSetLegendColor1 160 0 0 #A00000 27 | dataSetRowTitleColor1 160 0 0 #A00000 28 | dataSetBarFillColor2 255 96 0 #FF6000 29 | dataSetBarPatternColor2 255 128 0 #FF8000 30 | dataSetFillColor2 255 96 0 #FF6000 31 | dataSetLineColor2 255 96 0 #FF6000 32 | dataSetBorderColor2 0 0 0 #000000 33 | dataSetBackgroundColor2 255 128 0 #FF8000 34 | dataSetErrorColor2 255 96 0 #FF6000 35 | dataSetLegendColor2 160 0 0 #A00000 36 | dataSetRowTitleColor2 160 0 0 #A00000 37 | dataSetBarFillColor3 255 255 6 #FFFF06 38 | dataSetBarPatternColor3 255 255 0 #FFFF00 39 | dataSetFillColor3 255 255 6 #FFFF06 40 | dataSetLineColor3 255 255 6 #FFFF06 41 | dataSetBorderColor3 0 0 0 #000000 42 | dataSetBackgroundColor3 255 255 0 #FFFF00 43 | dataSetErrorColor3 255 255 6 #FFFF06 44 | dataSetLegendColor3 160 0 0 #A00000 45 | dataSetRowTitleColor3 160 0 0 #A00000 46 | dataSetBarFillColor4 252 169 46 #FCA92E 47 | dataSetBarPatternColor4 252 169 46 #FCA92E 48 | dataSetFillColor4 252 169 46 #FCA92E 49 | dataSetLineColor4 252 169 46 #FCA92E 50 | dataSetBorderColor4 0 0 0 #000000 51 | dataSetBackgroundColor4 252 169 46 #FCA92E 52 | dataSetErrorColor4 252 169 46 #FCA92E 53 | dataSetLegendColor4 160 0 0 #A00000 54 | dataSetRowTitleColor4 160 0 0 #A00000 55 | dataSetBarFillColor5 0 0 0 #000000 56 | dataSetBarPatternColor5 255 255 160 #FFFFA0 57 | dataSetFillColor5 0 0 0 #000000 58 | dataSetLineColor5 0 0 0 #000000 59 | dataSetBorderColor5 0 0 0 #000000 60 | dataSetBackgroundColor5 255 255 160 #FFFFA0 61 | dataSetErrorColor5 0 0 0 #000000 62 | dataSetLegendColor5 160 0 0 #A00000 63 | dataSetRowTitleColor5 160 0 0 #A00000 64 | dataSetBarFillColor6 249 64 64 #F94040 65 | dataSetBarPatternColor6 249 64 64 #F94040 66 | dataSetFillColor6 249 64 64 #F94040 67 | dataSetLineColor6 249 64 64 #F94040 68 | dataSetBorderColor6 0 0 0 #000000 69 | dataSetBackgroundColor6 249 64 64 #F94040 70 | dataSetErrorColor6 249 64 64 #F94040 71 | dataSetLegendColor6 160 0 0 #A00000 72 | dataSetRowTitleColor6 160 0 0 #A00000 73 | dataSetBarFillColor7 255 192 128 #FFC080 74 | dataSetBarPatternColor7 242 183 124 #F2B77C 75 | dataSetFillColor7 255 192 128 #FFC080 76 | dataSetLineColor7 255 192 128 #FFC080 77 | dataSetBorderColor7 0 0 0 #000000 78 | dataSetBackgroundColor7 242 183 124 #F2B77C 79 | dataSetErrorColor7 255 192 128 #FFC080 80 | dataSetLegendColor7 160 0 0 #A00000 81 | dataSetRowTitleColor7 160 0 0 #A00000 82 | dataSetBarFillColor8 255 128 0 #FF8000 83 | dataSetBarPatternColor8 255 128 0 #FF8000 84 | dataSetFillColor8 255 128 0 #FF8000 85 | dataSetLineColor8 255 128 0 #FF8000 86 | dataSetBorderColor8 0 0 0 #000000 87 | dataSetBackgroundColor8 255 128 0 #FF8000 88 | dataSetErrorColor8 255 128 0 #FF8000 89 | dataSetLegendColor8 160 0 0 #A00000 90 | dataSetRowTitleColor8 160 0 0 #A00000 91 | dataSetBarFillColor9 206 6 101 #CE0665 92 | dataSetBarPatternColor9 206 6 101 #CE0665 93 | dataSetFillColor9 206 6 101 #CE0665 94 | dataSetLineColor9 206 6 101 #CE0665 95 | dataSetBorderColor9 0 0 0 #000000 96 | dataSetBackgroundColor9 206 6 101 #CE0665 97 | dataSetErrorColor9 206 6 101 #CE0665 98 | dataSetLegendColor9 160 0 0 #A00000 99 | dataSetRowTitleColor9 160 0 0 #A00000 100 | -------------------------------------------------------------------------------- /data-raw/schemes/office.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 204 210 224 #CCD2E0 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 128 #000080 4 | axisLabelColor 0 0 128 #000080 5 | axisTitleColor 0 0 128 #000080 6 | graphTitleColor 0 0 128 #000080 7 | objectTextColor 0 0 128 #000080 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 0 128 #000080 10 | objectLinesColor 0 0 128 #000080 11 | objectPatternColor 0 0 128 #000080 12 | embeddedTableBorderColor 0 0 128 #000080 13 | embeddedTableLineUnderTitleColor 0 0 128 #000080 14 | embeddedTableLineNextToRowTitleColor 0 0 128 #000080 15 | embeddedTableTextColor 0 0 128 #000080 16 | embeddedTableGridColor 0 0 128 #000080 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 0 0 128 #000080 20 | dataSetBarPatternColor1 0 0 128 #000080 21 | dataSetFillColor1 0 0 128 #000080 22 | dataSetLineColor1 0 0 128 #000080 23 | dataSetBorderColor1 0 0 128 #000080 24 | dataSetBackgroundColor1 0 0 128 #000080 25 | dataSetErrorColor1 0 0 128 #000080 26 | dataSetLegendColor1 0 0 192 #0000C0 27 | dataSetRowTitleColor1 0 0 192 #0000C0 28 | dataSetBarFillColor2 128 0 64 #800040 29 | dataSetBarPatternColor2 128 0 64 #800040 30 | dataSetFillColor2 128 0 64 #800040 31 | dataSetLineColor2 128 0 64 #800040 32 | dataSetBorderColor2 128 0 64 #800040 33 | dataSetBackgroundColor2 128 0 64 #800040 34 | dataSetErrorColor2 128 0 64 #800040 35 | dataSetLegendColor2 128 0 64 #800040 36 | dataSetRowTitleColor2 128 0 64 #800040 37 | dataSetBarFillColor3 76 76 76 #4C4C4C 38 | dataSetBarPatternColor3 76 76 76 #4C4C4C 39 | dataSetFillColor3 76 76 76 #4C4C4C 40 | dataSetLineColor3 76 76 76 #4C4C4C 41 | dataSetBorderColor3 76 76 76 #4C4C4C 42 | dataSetBackgroundColor3 76 76 76 #4C4C4C 43 | dataSetErrorColor3 76 76 76 #4C4C4C 44 | dataSetLegendColor3 76 76 76 #4C4C4C 45 | dataSetRowTitleColor3 76 76 76 #4C4C4C 46 | dataSetBarFillColor4 0 128 128 #008080 47 | dataSetBarPatternColor4 0 128 128 #008080 48 | dataSetFillColor4 0 128 128 #008080 49 | dataSetLineColor4 0 128 128 #008080 50 | dataSetBorderColor4 0 128 128 #008080 51 | dataSetBackgroundColor4 0 128 128 #008080 52 | dataSetErrorColor4 0 128 128 #008080 53 | dataSetLegendColor4 0 128 128 #008080 54 | dataSetRowTitleColor4 0 128 128 #008080 55 | dataSetBarFillColor5 0 64 128 #004080 56 | dataSetBarPatternColor5 0 64 128 #004080 57 | dataSetFillColor5 0 64 128 #004080 58 | dataSetLineColor5 0 64 128 #004080 59 | dataSetBorderColor5 0 64 128 #004080 60 | dataSetBackgroundColor5 0 64 128 #004080 61 | dataSetErrorColor5 0 64 128 #004080 62 | dataSetLegendColor5 0 64 128 #004080 63 | dataSetRowTitleColor5 0 64 128 #004080 64 | dataSetBarFillColor6 128 0 128 #800080 65 | dataSetBarPatternColor6 128 0 128 #800080 66 | dataSetFillColor6 128 0 128 #800080 67 | dataSetLineColor6 128 0 128 #800080 68 | dataSetBorderColor6 128 0 128 #800080 69 | dataSetBackgroundColor6 128 0 128 #800080 70 | dataSetErrorColor6 128 0 128 #800080 71 | dataSetLegendColor6 128 0 128 #800080 72 | dataSetRowTitleColor6 128 0 128 #800080 73 | dataSetBarFillColor7 0 128 64 #008040 74 | dataSetBarPatternColor7 0 128 64 #008040 75 | dataSetFillColor7 0 128 64 #008040 76 | dataSetLineColor7 0 128 64 #008040 77 | dataSetBorderColor7 0 128 64 #008040 78 | dataSetBackgroundColor7 0 128 64 #008040 79 | dataSetErrorColor7 0 128 64 #008040 80 | dataSetLegendColor7 0 128 64 #008040 81 | dataSetRowTitleColor7 0 128 64 #008040 82 | dataSetBarFillColor8 0 0 255 #0000FF 83 | dataSetBarPatternColor8 0 0 255 #0000FF 84 | dataSetFillColor8 0 0 255 #0000FF 85 | dataSetLineColor8 0 0 255 #0000FF 86 | dataSetBorderColor8 0 0 255 #0000FF 87 | dataSetBackgroundColor8 0 0 255 #0000FF 88 | dataSetErrorColor8 0 0 255 #0000FF 89 | dataSetLegendColor8 0 0 192 #0000C0 90 | dataSetRowTitleColor8 0 0 192 #0000C0 91 | dataSetBarFillColor9 87 87 249 #5757F9 92 | dataSetBarPatternColor9 87 87 249 #5757F9 93 | dataSetFillColor9 87 87 249 #5757F9 94 | dataSetLineColor9 87 87 249 #5757F9 95 | dataSetBorderColor9 87 87 249 #5757F9 96 | dataSetBackgroundColor9 87 87 249 #5757F9 97 | dataSetErrorColor9 87 87 249 #5757F9 98 | dataSetLegendColor9 87 87 249 #5757F9 99 | dataSetRowTitleColor9 0 0 192 #0000C0 100 | -------------------------------------------------------------------------------- /data-raw/schemes/autumn_leaves.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 160 0 0 #A00000 4 | axisLabelColor 160 0 0 #A00000 5 | axisTitleColor 160 0 0 #A00000 6 | graphTitleColor 160 0 0 #A00000 7 | objectTextColor 160 0 0 #A00000 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 160 0 0 #A00000 10 | objectLinesColor 160 0 0 #A00000 11 | objectPatternColor 160 0 0 #A00000 12 | embeddedTableBorderColor 160 0 0 #A00000 13 | embeddedTableLineUnderTitleColor 160 0 0 #A00000 14 | embeddedTableLineNextToRowTitleColor 160 0 0 #A00000 15 | embeddedTableTextColor 160 0 0 #A00000 16 | embeddedTableGridColor 160 0 0 #A00000 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 160 0 0 #A00000 20 | dataSetBarPatternColor1 160 0 0 #A00000 21 | dataSetFillColor1 160 0 0 #A00000 22 | dataSetLineColor1 160 0 0 #A00000 23 | dataSetBorderColor1 160 0 0 #A00000 24 | dataSetBackgroundColor1 160 0 0 #A00000 25 | dataSetErrorColor1 160 0 0 #A00000 26 | dataSetLegendColor1 160 0 0 #A00000 27 | dataSetRowTitleColor1 160 0 0 #A00000 28 | dataSetBarFillColor2 255 0 0 #FF0000 29 | dataSetBarPatternColor2 255 0 0 #FF0000 30 | dataSetFillColor2 255 0 0 #FF0000 31 | dataSetLineColor2 255 0 0 #FF0000 32 | dataSetBorderColor2 255 0 0 #FF0000 33 | dataSetBackgroundColor2 255 0 0 #FF0000 34 | dataSetErrorColor2 255 0 0 #FF0000 35 | dataSetLegendColor2 160 0 0 #A00000 36 | dataSetRowTitleColor2 160 0 0 #A00000 37 | dataSetBarFillColor3 206 6 101 #CE0665 38 | dataSetBarPatternColor3 206 6 101 #CE0665 39 | dataSetFillColor3 206 6 101 #CE0665 40 | dataSetLineColor3 206 6 101 #CE0665 41 | dataSetBorderColor3 206 6 101 #CE0665 42 | dataSetBackgroundColor3 206 6 101 #CE0665 43 | dataSetErrorColor3 206 6 101 #CE0665 44 | dataSetLegendColor3 160 0 0 #A00000 45 | dataSetRowTitleColor3 160 0 0 #A00000 46 | dataSetBarFillColor4 255 128 128 #FF8080 47 | dataSetBarPatternColor4 255 128 128 #FF8080 48 | dataSetFillColor4 255 128 128 #FF8080 49 | dataSetLineColor4 255 128 128 #FF8080 50 | dataSetBorderColor4 255 128 128 #FF8080 51 | dataSetBackgroundColor4 255 128 128 #FF8080 52 | dataSetErrorColor4 255 128 128 #FF8080 53 | dataSetLegendColor4 160 0 0 #A00000 54 | dataSetRowTitleColor4 160 0 0 #A00000 55 | dataSetBarFillColor5 159 4 77 #9F044D 56 | dataSetBarPatternColor5 159 4 77 #9F044D 57 | dataSetFillColor5 159 4 77 #9F044D 58 | dataSetLineColor5 159 4 77 #9F044D 59 | dataSetBorderColor5 159 4 77 #9F044D 60 | dataSetBackgroundColor5 159 4 77 #9F044D 61 | dataSetErrorColor5 159 4 77 #9F044D 62 | dataSetLegendColor5 160 0 0 #A00000 63 | dataSetRowTitleColor5 160 0 0 #A00000 64 | dataSetBarFillColor6 249 64 64 #F94040 65 | dataSetBarPatternColor6 249 64 64 #F94040 66 | dataSetFillColor6 249 64 64 #F94040 67 | dataSetLineColor6 249 64 64 #F94040 68 | dataSetBorderColor6 249 64 64 #F94040 69 | dataSetBackgroundColor6 249 64 64 #F94040 70 | dataSetErrorColor6 249 64 64 #F94040 71 | dataSetLegendColor6 160 0 0 #A00000 72 | dataSetRowTitleColor6 160 0 0 #A00000 73 | dataSetBarFillColor7 255 96 0 #FF6000 74 | dataSetBarPatternColor7 255 96 0 #FF6000 75 | dataSetFillColor7 255 96 0 #FF6000 76 | dataSetLineColor7 255 96 0 #FF6000 77 | dataSetBorderColor7 255 96 0 #FF6000 78 | dataSetBackgroundColor7 255 96 0 #FF6000 79 | dataSetErrorColor7 255 96 0 #FF6000 80 | dataSetLegendColor7 160 0 0 #A00000 81 | dataSetRowTitleColor7 160 0 0 #A00000 82 | dataSetBarFillColor8 206 6 101 #CE0665 83 | dataSetBarPatternColor8 206 6 101 #CE0665 84 | dataSetFillColor8 206 6 101 #CE0665 85 | dataSetLineColor8 206 6 101 #CE0665 86 | dataSetBorderColor8 206 6 101 #CE0665 87 | dataSetBackgroundColor8 206 6 101 #CE0665 88 | dataSetErrorColor8 206 6 101 #CE0665 89 | dataSetLegendColor8 160 0 0 #A00000 90 | dataSetRowTitleColor8 160 0 0 #A00000 91 | dataSetBarFillColor9 192 96 0 #C06000 92 | dataSetBarPatternColor9 192 96 0 #C06000 93 | dataSetFillColor9 192 96 0 #C06000 94 | dataSetLineColor9 192 96 0 #C06000 95 | dataSetBorderColor9 192 96 0 #C06000 96 | dataSetBackgroundColor9 192 96 0 #C06000 97 | dataSetErrorColor9 192 96 0 #C06000 98 | dataSetLegendColor9 160 0 0 #A00000 99 | dataSetRowTitleColor9 160 0 0 #A00000 100 | -------------------------------------------------------------------------------- /data-raw/schemes/the_blues.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 128 #000080 4 | axisLabelColor 0 0 128 #000080 5 | axisTitleColor 0 0 128 #000080 6 | graphTitleColor 0 0 128 #000080 7 | objectTextColor 0 0 128 #000080 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 0 128 #000080 10 | objectLinesColor 0 0 128 #000080 11 | objectPatternColor 0 0 128 #000080 12 | embeddedTableBorderColor 0 0 128 #000080 13 | embeddedTableLineUnderTitleColor 0 0 128 #000080 14 | embeddedTableLineNextToRowTitleColor 0 0 128 #000080 15 | embeddedTableTextColor 0 0 128 #000080 16 | embeddedTableGridColor 0 0 128 #000080 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 0 0 128 #000080 20 | dataSetBarPatternColor1 0 0 128 #000080 21 | dataSetFillColor1 0 0 128 #000080 22 | dataSetLineColor1 0 0 128 #000080 23 | dataSetBorderColor1 0 0 128 #000080 24 | dataSetBackgroundColor1 0 0 128 #000080 25 | dataSetErrorColor1 0 0 128 #000080 26 | dataSetLegendColor1 0 0 192 #0000C0 27 | dataSetRowTitleColor1 0 0 192 #0000C0 28 | dataSetBarFillColor2 0 0 192 #0000C0 29 | dataSetBarPatternColor2 0 0 192 #0000C0 30 | dataSetFillColor2 0 0 192 #0000C0 31 | dataSetLineColor2 0 0 192 #0000C0 32 | dataSetBorderColor2 0 0 192 #0000C0 33 | dataSetBackgroundColor2 0 0 192 #0000C0 34 | dataSetErrorColor2 0 0 192 #0000C0 35 | dataSetLegendColor2 0 0 192 #0000C0 36 | dataSetRowTitleColor2 0 0 192 #0000C0 37 | dataSetBarFillColor3 0 0 255 #0000FF 38 | dataSetBarPatternColor3 0 0 255 #0000FF 39 | dataSetFillColor3 0 0 255 #0000FF 40 | dataSetLineColor3 0 0 255 #0000FF 41 | dataSetBorderColor3 0 0 255 #0000FF 42 | dataSetBackgroundColor3 0 0 255 #0000FF 43 | dataSetErrorColor3 0 0 255 #0000FF 44 | dataSetLegendColor3 0 0 192 #0000C0 45 | dataSetRowTitleColor3 0 0 192 #0000C0 46 | dataSetBarFillColor4 87 87 249 #5757F9 47 | dataSetBarPatternColor4 87 87 249 #5757F9 48 | dataSetFillColor4 87 87 249 #5757F9 49 | dataSetLineColor4 87 87 249 #5757F9 50 | dataSetBorderColor4 87 87 249 #5757F9 51 | dataSetBackgroundColor4 87 87 249 #5757F9 52 | dataSetErrorColor4 87 87 249 #5757F9 53 | dataSetLegendColor4 0 0 192 #0000C0 54 | dataSetRowTitleColor4 0 0 192 #0000C0 55 | dataSetBarFillColor5 85 160 251 #55A0FB 56 | dataSetBarPatternColor5 85 160 251 #55A0FB 57 | dataSetFillColor5 85 160 251 #55A0FB 58 | dataSetLineColor5 85 160 251 #55A0FB 59 | dataSetBorderColor5 85 160 251 #55A0FB 60 | dataSetBackgroundColor5 85 160 251 #55A0FB 61 | dataSetErrorColor5 85 160 251 #55A0FB 62 | dataSetLegendColor5 0 0 192 #0000C0 63 | dataSetRowTitleColor5 0 0 192 #0000C0 64 | dataSetBarFillColor6 144 191 249 #90BFF9 65 | dataSetBarPatternColor6 144 191 249 #90BFF9 66 | dataSetFillColor6 144 191 249 #90BFF9 67 | dataSetLineColor6 144 191 249 #90BFF9 68 | dataSetBorderColor6 144 191 249 #90BFF9 69 | dataSetBackgroundColor6 144 191 249 #90BFF9 70 | dataSetErrorColor6 144 191 249 #90BFF9 71 | dataSetLegendColor6 0 0 192 #0000C0 72 | dataSetRowTitleColor6 0 0 192 #0000C0 73 | dataSetBarFillColor7 200 222 249 #C8DEF9 74 | dataSetBarPatternColor7 200 222 249 #C8DEF9 75 | dataSetFillColor7 200 222 249 #C8DEF9 76 | dataSetLineColor7 200 222 249 #C8DEF9 77 | dataSetBorderColor7 200 222 249 #C8DEF9 78 | dataSetBackgroundColor7 200 222 249 #C8DEF9 79 | dataSetErrorColor7 200 222 249 #C8DEF9 80 | dataSetLegendColor7 0 0 192 #0000C0 81 | dataSetRowTitleColor7 0 0 192 #0000C0 82 | dataSetBarFillColor8 0 0 255 #0000FF 83 | dataSetBarPatternColor8 0 0 255 #0000FF 84 | dataSetFillColor8 0 0 255 #0000FF 85 | dataSetLineColor8 0 0 255 #0000FF 86 | dataSetBorderColor8 0 0 255 #0000FF 87 | dataSetBackgroundColor8 0 0 255 #0000FF 88 | dataSetErrorColor8 0 0 255 #0000FF 89 | dataSetLegendColor8 0 0 192 #0000C0 90 | dataSetRowTitleColor8 0 0 192 #0000C0 91 | dataSetBarFillColor9 87 87 249 #5757F9 92 | dataSetBarPatternColor9 87 87 249 #5757F9 93 | dataSetFillColor9 87 87 249 #5757F9 94 | dataSetLineColor9 87 87 249 #5757F9 95 | dataSetBorderColor9 87 87 249 #5757F9 96 | dataSetBackgroundColor9 87 87 249 #5757F9 97 | dataSetErrorColor9 87 87 249 #5757F9 98 | dataSetLegendColor9 0 0 192 #0000C0 99 | dataSetRowTitleColor9 0 0 192 #0000C0 100 | -------------------------------------------------------------------------------- /data-raw/schemes/shades_of_gray.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 0 #000000 4 | axisLabelColor 0 0 0 #000000 5 | axisTitleColor 0 0 0 #000000 6 | graphTitleColor 0 0 0 #000000 7 | objectTextColor 0 0 0 #000000 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 0 0 #000000 10 | objectLinesColor 0 0 0 #000000 11 | objectPatternColor 0 0 0 #000000 12 | embeddedTableBorderColor 0 0 0 #000000 13 | embeddedTableLineUnderTitleColor 0 0 0 #000000 14 | embeddedTableLineNextToRowTitleColor 0 0 0 #000000 15 | embeddedTableTextColor 0 0 0 #000000 16 | embeddedTableGridColor 0 0 0 #000000 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 0 0 0 #000000 20 | dataSetBarPatternColor1 0 0 0 #000000 21 | dataSetFillColor1 0 0 0 #000000 22 | dataSetLineColor1 0 0 0 #000000 23 | dataSetBorderColor1 0 0 0 #000000 24 | dataSetBackgroundColor1 0 0 0 #000000 25 | dataSetErrorColor1 0 0 0 #000000 26 | dataSetLegendColor1 0 0 0 #000000 27 | dataSetRowTitleColor1 0 0 0 #000000 28 | dataSetBarFillColor2 160 160 164 #A0A0A4 29 | dataSetBarPatternColor2 160 160 164 #A0A0A4 30 | dataSetFillColor2 160 160 164 #A0A0A4 31 | dataSetLineColor2 160 160 164 #A0A0A4 32 | dataSetBorderColor2 160 160 164 #A0A0A4 33 | dataSetBackgroundColor2 160 160 164 #A0A0A4 34 | dataSetErrorColor2 160 160 164 #A0A0A4 35 | dataSetLegendColor2 0 0 0 #000000 36 | dataSetRowTitleColor2 0 0 0 #000000 37 | dataSetBarFillColor3 128 128 128 #808080 38 | dataSetBarPatternColor3 128 128 128 #808080 39 | dataSetFillColor3 128 128 128 #808080 40 | dataSetLineColor3 128 128 128 #808080 41 | dataSetBorderColor3 128 128 128 #808080 42 | dataSetBackgroundColor3 128 128 128 #808080 43 | dataSetErrorColor3 128 128 128 #808080 44 | dataSetLegendColor3 0 0 0 #000000 45 | dataSetRowTitleColor3 0 0 0 #000000 46 | dataSetBarFillColor4 212 212 212 #D4D4D4 47 | dataSetBarPatternColor4 212 212 212 #D4D4D4 48 | dataSetFillColor4 212 212 212 #D4D4D4 49 | dataSetLineColor4 160 160 164 #A0A0A4 50 | dataSetBorderColor4 160 160 164 #A0A0A4 51 | dataSetBackgroundColor4 212 212 212 #D4D4D4 52 | dataSetErrorColor4 160 160 164 #A0A0A4 53 | dataSetLegendColor4 0 0 0 #000000 54 | dataSetRowTitleColor4 0 0 0 #000000 55 | dataSetBarFillColor5 96 96 96 #606060 56 | dataSetBarPatternColor5 96 96 96 #606060 57 | dataSetFillColor5 96 96 96 #606060 58 | dataSetLineColor5 96 96 96 #606060 59 | dataSetBorderColor5 96 96 96 #606060 60 | dataSetBackgroundColor5 96 96 96 #606060 61 | dataSetErrorColor5 96 96 96 #606060 62 | dataSetLegendColor5 0 0 0 #000000 63 | dataSetRowTitleColor5 0 0 0 #000000 64 | dataSetBarFillColor6 160 160 164 #A0A0A4 65 | dataSetBarPatternColor6 160 160 164 #A0A0A4 66 | dataSetFillColor6 160 160 164 #A0A0A4 67 | dataSetLineColor6 160 160 164 #A0A0A4 68 | dataSetBorderColor6 160 160 164 #A0A0A4 69 | dataSetBackgroundColor6 160 160 164 #A0A0A4 70 | dataSetErrorColor6 160 160 164 #A0A0A4 71 | dataSetLegendColor6 0 0 0 #000000 72 | dataSetRowTitleColor6 0 0 0 #000000 73 | dataSetBarFillColor7 96 96 96 #606060 74 | dataSetBarPatternColor7 96 96 96 #606060 75 | dataSetFillColor7 96 96 96 #606060 76 | dataSetLineColor7 96 96 96 #606060 77 | dataSetBorderColor7 96 96 96 #606060 78 | dataSetBackgroundColor7 96 96 96 #606060 79 | dataSetErrorColor7 96 96 96 #606060 80 | dataSetLegendColor7 0 0 0 #000000 81 | dataSetRowTitleColor7 0 0 0 #000000 82 | dataSetBarFillColor8 232 232 232 #E8E8E8 83 | dataSetBarPatternColor8 232 232 232 #E8E8E8 84 | dataSetFillColor8 232 232 232 #E8E8E8 85 | dataSetLineColor8 160 160 164 #A0A0A4 86 | dataSetBorderColor8 160 160 164 #A0A0A4 87 | dataSetBackgroundColor8 232 232 232 #E8E8E8 88 | dataSetErrorColor8 160 160 164 #A0A0A4 89 | dataSetLegendColor8 0 0 0 #000000 90 | dataSetRowTitleColor8 0 0 0 #000000 91 | dataSetBarFillColor9 160 160 164 #A0A0A4 92 | dataSetBarPatternColor9 160 160 164 #A0A0A4 93 | dataSetFillColor9 160 160 164 #A0A0A4 94 | dataSetLineColor9 160 160 164 #A0A0A4 95 | dataSetBorderColor9 160 160 164 #A0A0A4 96 | dataSetBackgroundColor9 160 160 164 #A0A0A4 97 | dataSetErrorColor9 160 160 164 #A0A0A4 98 | dataSetLegendColor9 0 0 0 #000000 99 | dataSetRowTitleColor9 0 0 0 #000000 100 | -------------------------------------------------------------------------------- /data-raw/schemes/winter_bright.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 128 #000080 4 | axisLabelColor 0 0 128 #000080 5 | axisTitleColor 0 0 128 #000080 6 | graphTitleColor 0 0 128 #000080 7 | objectTextColor 118 6 154 #76069A 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 0 128 #000080 10 | objectLinesColor 0 0 128 #000080 11 | objectPatternColor 0 0 128 #000080 12 | embeddedTableBorderColor 0 0 128 #000080 13 | embeddedTableLineUnderTitleColor 0 0 128 #000080 14 | embeddedTableLineNextToRowTitleColor 0 0 128 #000080 15 | embeddedTableTextColor 0 0 128 #000080 16 | embeddedTableGridColor 0 0 128 #000080 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 7 126 151 #077E97 20 | dataSetBarPatternColor1 15 153 178 #0F99B2 21 | dataSetFillColor1 7 126 151 #077E97 22 | dataSetLineColor1 7 126 151 #077E97 23 | dataSetBorderColor1 7 126 151 #077E97 24 | dataSetBackgroundColor1 15 153 178 #0F99B2 25 | dataSetErrorColor1 7 126 151 #077E97 26 | dataSetLegendColor1 0 0 128 #000080 27 | dataSetRowTitleColor1 0 0 128 #000080 28 | dataSetBarFillColor2 128 0 128 #800080 29 | dataSetBarPatternColor2 192 0 192 #C000C0 30 | dataSetFillColor2 128 0 128 #800080 31 | dataSetLineColor2 128 0 128 #800080 32 | dataSetBorderColor2 128 0 128 #800080 33 | dataSetBackgroundColor2 192 0 192 #C000C0 34 | dataSetErrorColor2 128 0 128 #800080 35 | dataSetLegendColor2 0 0 128 #000080 36 | dataSetRowTitleColor2 0 0 128 #000080 37 | dataSetBarFillColor3 0 0 128 #000080 38 | dataSetBarPatternColor3 0 0 192 #0000C0 39 | dataSetFillColor3 0 0 128 #000080 40 | dataSetLineColor3 0 0 128 #000080 41 | dataSetBorderColor3 0 0 128 #000080 42 | dataSetBackgroundColor3 0 0 192 #0000C0 43 | dataSetErrorColor3 0 0 128 #000080 44 | dataSetLegendColor3 0 0 128 #000080 45 | dataSetRowTitleColor3 0 0 128 #000080 46 | dataSetBarFillColor4 141 141 255 #8D8DFF 47 | dataSetBarPatternColor4 144 191 249 #90BFF9 48 | dataSetFillColor4 141 141 255 #8D8DFF 49 | dataSetLineColor4 141 141 255 #8D8DFF 50 | dataSetBorderColor4 141 141 255 #8D8DFF 51 | dataSetBackgroundColor4 144 191 249 #90BFF9 52 | dataSetErrorColor4 141 141 255 #8D8DFF 53 | dataSetLegendColor4 0 0 128 #000080 54 | dataSetRowTitleColor4 0 0 128 #000080 55 | dataSetBarFillColor5 192 0 192 #C000C0 56 | dataSetBarPatternColor5 176 127 192 #B07FC0 57 | dataSetFillColor5 192 0 192 #C000C0 58 | dataSetLineColor5 192 0 192 #C000C0 59 | dataSetBorderColor5 192 0 192 #C000C0 60 | dataSetBackgroundColor5 176 127 192 #B07FC0 61 | dataSetErrorColor5 192 0 192 #C000C0 62 | dataSetLegendColor5 0 0 128 #000080 63 | dataSetRowTitleColor5 0 0 128 #000080 64 | dataSetBarFillColor6 5 105 67 #056943 65 | dataSetBarPatternColor6 9 153 99 #099963 66 | dataSetFillColor6 5 105 67 #056943 67 | dataSetLineColor6 5 105 67 #056943 68 | dataSetBorderColor6 5 105 67 #056943 69 | dataSetBackgroundColor6 9 153 99 #099963 70 | dataSetErrorColor6 5 105 67 #056943 71 | dataSetLegendColor6 0 0 128 #000080 72 | dataSetRowTitleColor6 0 0 128 #000080 73 | dataSetBarFillColor7 7 126 151 #077E97 74 | dataSetBarPatternColor7 15 153 178 #0F99B2 75 | dataSetFillColor7 7 126 151 #077E97 76 | dataSetLineColor7 7 126 151 #077E97 77 | dataSetBorderColor7 7 126 151 #077E97 78 | dataSetBackgroundColor7 15 153 178 #0F99B2 79 | dataSetErrorColor7 7 126 151 #077E97 80 | dataSetLegendColor7 0 0 128 #000080 81 | dataSetRowTitleColor7 0 0 128 #000080 82 | dataSetBarFillColor8 128 0 128 #800080 83 | dataSetBarPatternColor8 192 0 192 #C000C0 84 | dataSetFillColor8 128 0 128 #800080 85 | dataSetLineColor8 128 0 128 #800080 86 | dataSetBorderColor8 128 0 128 #800080 87 | dataSetBackgroundColor8 192 0 192 #C000C0 88 | dataSetErrorColor8 128 0 128 #800080 89 | dataSetLegendColor8 0 0 128 #000080 90 | dataSetRowTitleColor8 0 0 128 #000080 91 | dataSetBarFillColor9 0 0 128 #000080 92 | dataSetBarPatternColor9 0 0 192 #0000C0 93 | dataSetFillColor9 0 0 128 #000080 94 | dataSetLineColor9 0 0 128 #000080 95 | dataSetBorderColor9 0 0 128 #000080 96 | dataSetBackgroundColor9 0 0 192 #0000C0 97 | dataSetErrorColor9 0 0 128 #000080 98 | dataSetLegendColor9 0 0 128 #000080 99 | dataSetRowTitleColor9 0 0 128 #000080 100 | -------------------------------------------------------------------------------- /data-raw/schemes/candy_bright.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 54 60 129 #363C81 4 | axisLabelColor 50 50 50 #323232 5 | axisTitleColor 0 0 0 #000000 6 | graphTitleColor 0 0 0 #000000 7 | objectTextColor 39 39 61 #27273D 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 118 118 165 #7676A5 10 | objectLinesColor 71 71 120 #474778 11 | objectPatternColor 198 198 198 #C6C6C6 12 | embeddedTableBorderColor 50 50 50 #323232 13 | embeddedTableLineUnderTitleColor 50 50 50 #323232 14 | embeddedTableLineNextToRowTitleColor 50 50 50 #323232 15 | embeddedTableTextColor 50 50 50 #323232 16 | embeddedTableGridColor 50 50 50 #323232 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 243 243 243 #F3F3F3 19 | dataSetBarFillColor1 247 20 128 #F71480 20 | dataSetBarPatternColor1 247 20 128 #F71480 21 | dataSetFillColor1 247 20 128 #F71480 22 | dataSetLineColor1 247 20 128 #F71480 23 | dataSetBorderColor1 247 20 128 #F71480 24 | dataSetBackgroundColor1 247 20 128 #F71480 25 | dataSetErrorColor1 247 20 128 #F71480 26 | dataSetLegendColor1 0 0 128 #000080 27 | dataSetRowTitleColor1 0 0 128 #000080 28 | dataSetBarFillColor2 255 128 0 #FF8000 29 | dataSetBarPatternColor2 255 128 0 #FF8000 30 | dataSetFillColor2 255 128 0 #FF8000 31 | dataSetLineColor2 255 128 0 #FF8000 32 | dataSetBorderColor2 255 128 0 #FF8000 33 | dataSetBackgroundColor2 255 128 0 #FF8000 34 | dataSetErrorColor2 255 128 0 #FF8000 35 | dataSetLegendColor2 0 0 128 #000080 36 | dataSetRowTitleColor2 0 0 128 #000080 37 | dataSetBarFillColor3 128 128 0 #808000 38 | dataSetBarPatternColor3 128 128 0 #808000 39 | dataSetFillColor3 128 128 0 #808000 40 | dataSetLineColor3 128 128 0 #808000 41 | dataSetBorderColor3 128 128 0 #808000 42 | dataSetBackgroundColor3 128 128 0 #808000 43 | dataSetErrorColor3 128 128 0 #808000 44 | dataSetLegendColor3 0 0 128 #000080 45 | dataSetRowTitleColor3 0 0 128 #000080 46 | dataSetBarFillColor4 0 128 0 #008000 47 | dataSetBarPatternColor4 0 128 0 #008000 48 | dataSetFillColor4 0 128 0 #008000 49 | dataSetLineColor4 0 128 0 #008000 50 | dataSetBorderColor4 0 128 0 #008000 51 | dataSetBackgroundColor4 0 128 0 #008000 52 | dataSetErrorColor4 0 128 0 #008000 53 | dataSetLegendColor4 0 0 128 #000080 54 | dataSetRowTitleColor4 0 0 128 #000080 55 | dataSetBarFillColor5 0 0 255 #0000FF 56 | dataSetBarPatternColor5 0 0 255 #0000FF 57 | dataSetFillColor5 0 0 255 #0000FF 58 | dataSetLineColor5 0 0 255 #0000FF 59 | dataSetBorderColor5 0 0 255 #0000FF 60 | dataSetBackgroundColor5 0 0 255 #0000FF 61 | dataSetErrorColor5 0 0 255 #0000FF 62 | dataSetLegendColor5 0 0 128 #000080 63 | dataSetRowTitleColor5 0 0 128 #000080 64 | dataSetBarFillColor6 118 6 154 #76069A 65 | dataSetBarPatternColor6 118 6 154 #76069A 66 | dataSetFillColor6 118 6 154 #76069A 67 | dataSetLineColor6 118 6 154 #76069A 68 | dataSetBorderColor6 118 6 154 #76069A 69 | dataSetBackgroundColor6 118 6 154 #76069A 70 | dataSetErrorColor6 118 6 154 #76069A 71 | dataSetLegendColor6 0 0 128 #000080 72 | dataSetRowTitleColor6 0 0 128 #000080 73 | dataSetBarFillColor7 247 20 128 #F71480 74 | dataSetBarPatternColor7 247 20 128 #F71480 75 | dataSetFillColor7 247 20 128 #F71480 76 | dataSetLineColor7 247 20 128 #F71480 77 | dataSetBorderColor7 247 20 128 #F71480 78 | dataSetBackgroundColor7 247 20 128 #F71480 79 | dataSetErrorColor7 247 20 128 #F71480 80 | dataSetLegendColor7 0 0 128 #000080 81 | dataSetRowTitleColor7 0 0 128 #000080 82 | dataSetBarFillColor8 255 128 0 #FF8000 83 | dataSetBarPatternColor8 255 128 0 #FF8000 84 | dataSetFillColor8 255 128 0 #FF8000 85 | dataSetLineColor8 255 128 0 #FF8000 86 | dataSetBorderColor8 255 128 0 #FF8000 87 | dataSetBackgroundColor8 255 128 0 #FF8000 88 | dataSetErrorColor8 255 128 0 #FF8000 89 | dataSetLegendColor8 0 0 128 #000080 90 | dataSetRowTitleColor8 0 0 128 #000080 91 | dataSetBarFillColor9 128 128 0 #808000 92 | dataSetBarPatternColor9 128 128 0 #808000 93 | dataSetFillColor9 128 128 0 #808000 94 | dataSetLineColor9 128 128 0 #808000 95 | dataSetBorderColor9 128 128 0 #808000 96 | dataSetBackgroundColor9 128 128 0 #808000 97 | dataSetErrorColor9 128 128 0 #808000 98 | dataSetLegendColor9 0 0 128 #000080 99 | dataSetRowTitleColor9 0 0 128 #000080 100 | -------------------------------------------------------------------------------- /data-raw/schemes/flames.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 255 153 0 #FF9900 4 | axisLabelColor 205 56 7 #CD3807 5 | axisTitleColor 205 56 7 #CD3807 6 | graphTitleColor 205 56 7 #CD3807 7 | objectTextColor 205 56 7 #CD3807 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 205 56 7 #CD3807 10 | objectLinesColor 205 56 7 #CD3807 11 | objectPatternColor 205 56 7 #CD3807 12 | embeddedTableBorderColor 255 153 0 #FF9900 13 | embeddedTableLineUnderTitleColor 255 153 0 #FF9900 14 | embeddedTableLineNextToRowTitleColor 255 153 0 #FF9900 15 | embeddedTableTextColor 205 56 7 #CD3807 16 | embeddedTableGridColor 255 153 0 #FF9900 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 255 204 0 #FFCC00 20 | dataSetBarPatternColor1 255 204 0 #FFCC00 21 | dataSetFillColor1 255 204 0 #FFCC00 22 | dataSetLineColor1 255 204 0 #FFCC00 23 | dataSetBorderColor1 255 204 0 #FFCC00 24 | dataSetBackgroundColor1 255 204 0 #FFCC00 25 | dataSetErrorColor1 255 204 0 #FFCC00 26 | dataSetLegendColor1 204 0 0 #CC0000 27 | dataSetRowTitleColor1 0 0 0 #000000 28 | dataSetBarFillColor2 255 153 0 #FF9900 29 | dataSetBarPatternColor2 255 153 0 #FF9900 30 | dataSetFillColor2 255 153 0 #FF9900 31 | dataSetLineColor2 255 153 0 #FF9900 32 | dataSetBorderColor2 255 153 0 #FF9900 33 | dataSetBackgroundColor2 255 153 0 #FF9900 34 | dataSetErrorColor2 255 153 0 #FF9900 35 | dataSetLegendColor2 255 153 0 #FF9900 36 | dataSetRowTitleColor2 0 0 0 #000000 37 | dataSetBarFillColor3 205 56 7 #CD3807 38 | dataSetBarPatternColor3 205 56 7 #CD3807 39 | dataSetFillColor3 205 56 7 #CD3807 40 | dataSetLineColor3 205 56 7 #CD3807 41 | dataSetBorderColor3 205 56 7 #CD3807 42 | dataSetBackgroundColor3 205 56 7 #CD3807 43 | dataSetErrorColor3 205 56 7 #CD3807 44 | dataSetLegendColor3 205 56 7 #CD3807 45 | dataSetRowTitleColor3 0 0 0 #000000 46 | dataSetBarFillColor4 255 173 33 #FFAD21 47 | dataSetBarPatternColor4 255 173 33 #FFAD21 48 | dataSetFillColor4 255 173 33 #FFAD21 49 | dataSetLineColor4 255 173 33 #FFAD21 50 | dataSetBorderColor4 255 173 33 #FFAD21 51 | dataSetBackgroundColor4 255 173 33 #FFAD21 52 | dataSetErrorColor4 255 173 33 #FFAD21 53 | dataSetLegendColor4 255 173 33 #FFAD21 54 | dataSetRowTitleColor4 0 0 0 #000000 55 | dataSetBarFillColor5 255 255 51 #FFFF33 56 | dataSetBarPatternColor5 255 255 51 #FFFF33 57 | dataSetFillColor5 255 255 51 #FFFF33 58 | dataSetLineColor5 255 255 51 #FFFF33 59 | dataSetBorderColor5 255 173 33 #FFAD21 60 | dataSetBackgroundColor5 255 255 51 #FFFF33 61 | dataSetErrorColor5 255 173 33 #FFAD21 62 | dataSetLegendColor5 204 0 0 #CC0000 63 | dataSetRowTitleColor5 0 0 0 #000000 64 | dataSetBarFillColor6 244 0 0 #F40000 65 | dataSetBarPatternColor6 244 0 0 #F40000 66 | dataSetFillColor6 244 0 0 #F40000 67 | dataSetLineColor6 244 0 0 #F40000 68 | dataSetBorderColor6 244 0 0 #F40000 69 | dataSetBackgroundColor6 244 0 0 #F40000 70 | dataSetErrorColor6 244 0 0 #F40000 71 | dataSetLegendColor6 255 153 0 #FF9900 72 | dataSetRowTitleColor6 0 0 0 #000000 73 | dataSetBarFillColor7 255 153 0 #FF9900 74 | dataSetBarPatternColor7 255 153 0 #FF9900 75 | dataSetFillColor7 255 153 0 #FF9900 76 | dataSetLineColor7 255 153 0 #FF9900 77 | dataSetBorderColor7 255 153 0 #FF9900 78 | dataSetBackgroundColor7 255 153 0 #FF9900 79 | dataSetErrorColor7 255 153 0 #FF9900 80 | dataSetLegendColor7 204 0 0 #CC0000 81 | dataSetRowTitleColor7 0 0 0 #000000 82 | dataSetBarFillColor8 255 204 0 #FFCC00 83 | dataSetBarPatternColor8 255 204 0 #FFCC00 84 | dataSetFillColor8 255 204 0 #FFCC00 85 | dataSetLineColor8 255 204 0 #FFCC00 86 | dataSetBorderColor8 255 204 0 #FFCC00 87 | dataSetBackgroundColor8 255 204 0 #FFCC00 88 | dataSetErrorColor8 255 204 0 #FFCC00 89 | dataSetLegendColor8 255 153 0 #FF9900 90 | dataSetRowTitleColor8 0 0 0 #000000 91 | dataSetBarFillColor9 255 255 51 #FFFF33 92 | dataSetBarPatternColor9 255 255 51 #FFFF33 93 | dataSetFillColor9 255 255 51 #FFFF33 94 | dataSetLineColor9 255 255 51 #FFFF33 95 | dataSetBorderColor9 255 204 0 #FFCC00 96 | dataSetBackgroundColor9 255 255 51 #FFFF33 97 | dataSetErrorColor9 255 204 0 #FFCC00 98 | dataSetLegendColor9 204 0 0 #CC0000 99 | dataSetRowTitleColor9 0 0 0 #000000 100 | -------------------------------------------------------------------------------- /data-raw/schemes/sunny_garden.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 153 51 0 #993300 4 | axisLabelColor 153 51 0 #993300 5 | axisTitleColor 153 51 0 #993300 6 | graphTitleColor 0 128 0 #008000 7 | objectTextColor 0 128 0 #008000 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 128 0 #008000 10 | objectLinesColor 51 204 0 #33CC00 11 | objectPatternColor 51 204 0 #33CC00 12 | embeddedTableBorderColor 102 153 204 #6699CC 13 | embeddedTableLineUnderTitleColor 102 153 204 #6699CC 14 | embeddedTableLineNextToRowTitleColor 102 153 204 #6699CC 15 | embeddedTableTextColor 41 84 126 #29547E 16 | embeddedTableGridColor 102 153 204 #6699CC 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 51 204 0 #33CC00 20 | dataSetBarPatternColor1 51 204 0 #33CC00 21 | dataSetFillColor1 51 204 0 #33CC00 22 | dataSetLineColor1 51 204 0 #33CC00 23 | dataSetBorderColor1 0 128 0 #008000 24 | dataSetBackgroundColor1 51 204 0 #33CC00 25 | dataSetErrorColor1 0 128 0 #008000 26 | dataSetLegendColor1 51 204 0 #33CC00 27 | dataSetRowTitleColor1 0 0 0 #000000 28 | dataSetBarFillColor2 204 153 0 #CC9900 29 | dataSetBarPatternColor2 204 153 0 #CC9900 30 | dataSetFillColor2 204 153 0 #CC9900 31 | dataSetLineColor2 204 153 0 #CC9900 32 | dataSetBorderColor2 139 69 19 #8B4513 33 | dataSetBackgroundColor2 204 153 0 #CC9900 34 | dataSetErrorColor2 139 69 19 #8B4513 35 | dataSetLegendColor2 204 153 0 #CC9900 36 | dataSetRowTitleColor2 0 0 0 #000000 37 | dataSetBarFillColor3 102 153 204 #6699CC 38 | dataSetBarPatternColor3 102 153 204 #6699CC 39 | dataSetFillColor3 102 153 204 #6699CC 40 | dataSetLineColor3 102 153 204 #6699CC 41 | dataSetBorderColor3 102 153 204 #6699CC 42 | dataSetBackgroundColor3 102 153 204 #6699CC 43 | dataSetErrorColor3 102 153 204 #6699CC 44 | dataSetLegendColor3 102 153 204 #6699CC 45 | dataSetRowTitleColor3 0 0 0 #000000 46 | dataSetBarFillColor4 139 69 19 #8B4513 47 | dataSetBarPatternColor4 139 69 19 #8B4513 48 | dataSetFillColor4 139 69 19 #8B4513 49 | dataSetLineColor4 139 69 19 #8B4513 50 | dataSetBorderColor4 139 69 19 #8B4513 51 | dataSetBackgroundColor4 139 69 19 #8B4513 52 | dataSetErrorColor4 139 69 19 #8B4513 53 | dataSetLegendColor4 139 69 19 #8B4513 54 | dataSetRowTitleColor4 0 0 0 #000000 55 | dataSetBarFillColor5 144 238 144 #90EE90 56 | dataSetBarPatternColor5 144 238 144 #90EE90 57 | dataSetFillColor5 144 238 144 #90EE90 58 | dataSetLineColor5 144 238 144 #90EE90 59 | dataSetBorderColor5 51 204 0 #33CC00 60 | dataSetBackgroundColor5 144 238 144 #90EE90 61 | dataSetErrorColor5 51 204 0 #33CC00 62 | dataSetLegendColor5 0 128 0 #008000 63 | dataSetRowTitleColor5 0 0 0 #000000 64 | dataSetBarFillColor6 0 128 0 #008000 65 | dataSetBarPatternColor6 0 128 0 #008000 66 | dataSetFillColor6 0 128 0 #008000 67 | dataSetLineColor6 0 128 0 #008000 68 | dataSetBorderColor6 0 128 0 #008000 69 | dataSetBackgroundColor6 0 128 0 #008000 70 | dataSetErrorColor6 0 128 0 #008000 71 | dataSetLegendColor6 0 128 0 #008000 72 | dataSetRowTitleColor6 0 0 0 #000000 73 | dataSetBarFillColor7 204 153 0 #CC9900 74 | dataSetBarPatternColor7 204 153 0 #CC9900 75 | dataSetFillColor7 204 153 0 #CC9900 76 | dataSetLineColor7 204 153 0 #CC9900 77 | dataSetBorderColor7 204 153 0 #CC9900 78 | dataSetBackgroundColor7 204 153 0 #CC9900 79 | dataSetErrorColor7 139 69 19 #8B4513 80 | dataSetLegendColor7 204 153 0 #CC9900 81 | dataSetRowTitleColor7 0 0 0 #000000 82 | dataSetBarFillColor8 255 204 0 #FFCC00 83 | dataSetBarPatternColor8 255 204 0 #FFCC00 84 | dataSetFillColor8 255 204 0 #FFCC00 85 | dataSetLineColor8 255 204 0 #FFCC00 86 | dataSetBorderColor8 255 204 0 #FFCC00 87 | dataSetBackgroundColor8 255 204 0 #FFCC00 88 | dataSetErrorColor8 255 204 0 #FFCC00 89 | dataSetLegendColor8 255 153 0 #FF9900 90 | dataSetRowTitleColor8 0 0 0 #000000 91 | dataSetBarFillColor9 255 255 51 #FFFF33 92 | dataSetBarPatternColor9 255 255 51 #FFFF33 93 | dataSetFillColor9 255 255 51 #FFFF33 94 | dataSetLineColor9 255 255 51 #FFFF33 95 | dataSetBorderColor9 255 204 0 #FFCC00 96 | dataSetBackgroundColor9 255 255 51 #FFFF33 97 | dataSetErrorColor9 255 204 0 #FFCC00 98 | dataSetLegendColor9 255 255 51 #FFFF33 99 | dataSetRowTitleColor9 0 0 0 #000000 100 | -------------------------------------------------------------------------------- /data-raw/schemes/candy_soft.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 192 #0000C0 4 | axisLabelColor 0 0 192 #0000C0 5 | axisTitleColor 0 0 192 #0000C0 6 | graphTitleColor 0 0 192 #0000C0 7 | objectTextColor 0 0 192 #0000C0 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 118 118 165 #7676A5 10 | objectLinesColor 71 71 120 #474778 11 | objectPatternColor 198 198 198 #C6C6C6 12 | embeddedTableBorderColor 0 0 192 #0000C0 13 | embeddedTableLineUnderTitleColor 0 0 192 #0000C0 14 | embeddedTableLineNextToRowTitleColor 0 0 192 #0000C0 15 | embeddedTableTextColor 0 0 192 #0000C0 16 | embeddedTableGridColor 0 0 192 #0000C0 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 243 243 243 #F3F3F3 19 | dataSetBarFillColor1 255 128 128 #FF8080 20 | dataSetBarPatternColor1 255 128 128 #FF8080 21 | dataSetFillColor1 255 128 128 #FF8080 22 | dataSetLineColor1 255 128 128 #FF8080 23 | dataSetBorderColor1 255 128 128 #FF8080 24 | dataSetBackgroundColor1 255 128 128 #FF8080 25 | dataSetErrorColor1 255 128 128 #FF8080 26 | dataSetLegendColor1 0 0 192 #0000C0 27 | dataSetRowTitleColor1 0 0 192 #0000C0 28 | dataSetBarFillColor2 255 160 64 #FFA040 29 | dataSetBarPatternColor2 255 160 64 #FFA040 30 | dataSetFillColor2 255 160 64 #FFA040 31 | dataSetLineColor2 255 160 64 #FFA040 32 | dataSetBorderColor2 255 160 64 #FFA040 33 | dataSetBackgroundColor2 255 160 64 #FFA040 34 | dataSetErrorColor2 255 160 64 #FFA040 35 | dataSetLegendColor2 0 0 192 #0000C0 36 | dataSetRowTitleColor2 0 0 192 #0000C0 37 | dataSetBarFillColor3 192 192 0 #C0C000 38 | dataSetBarPatternColor3 192 192 0 #C0C000 39 | dataSetFillColor3 192 192 0 #C0C000 40 | dataSetLineColor3 192 192 0 #C0C000 41 | dataSetBorderColor3 192 192 0 #C0C000 42 | dataSetBackgroundColor3 192 192 0 #C0C000 43 | dataSetErrorColor3 192 192 0 #C0C000 44 | dataSetLegendColor3 0 0 192 #0000C0 45 | dataSetRowTitleColor3 0 0 192 #0000C0 46 | dataSetBarFillColor4 0 192 0 #00C000 47 | dataSetBarPatternColor4 0 192 0 #00C000 48 | dataSetFillColor4 0 192 0 #00C000 49 | dataSetLineColor4 0 192 0 #00C000 50 | dataSetBorderColor4 0 192 0 #00C000 51 | dataSetBackgroundColor4 0 192 0 #00C000 52 | dataSetErrorColor4 0 192 0 #00C000 53 | dataSetLegendColor4 0 0 192 #0000C0 54 | dataSetRowTitleColor4 0 0 192 #0000C0 55 | dataSetBarFillColor5 85 160 251 #55A0FB 56 | dataSetBarPatternColor5 85 160 251 #55A0FB 57 | dataSetFillColor5 85 160 251 #55A0FB 58 | dataSetLineColor5 85 160 251 #55A0FB 59 | dataSetBorderColor5 85 160 251 #55A0FB 60 | dataSetBackgroundColor5 85 160 251 #55A0FB 61 | dataSetErrorColor5 85 160 251 #55A0FB 62 | dataSetLegendColor5 0 0 192 #0000C0 63 | dataSetRowTitleColor5 0 0 192 #0000C0 64 | dataSetBarFillColor6 173 7 227 #AD07E3 65 | dataSetBarPatternColor6 173 7 227 #AD07E3 66 | dataSetFillColor6 173 7 227 #AD07E3 67 | dataSetLineColor6 173 7 227 #AD07E3 68 | dataSetBorderColor6 173 7 227 #AD07E3 69 | dataSetBackgroundColor6 173 7 227 #AD07E3 70 | dataSetErrorColor6 173 7 227 #AD07E3 71 | dataSetLegendColor6 0 0 192 #0000C0 72 | dataSetRowTitleColor6 0 0 192 #0000C0 73 | dataSetBarFillColor7 255 128 128 #FF8080 74 | dataSetBarPatternColor7 255 128 128 #FF8080 75 | dataSetFillColor7 255 128 128 #FF8080 76 | dataSetLineColor7 255 128 128 #FF8080 77 | dataSetBorderColor7 255 128 128 #FF8080 78 | dataSetBackgroundColor7 255 128 128 #FF8080 79 | dataSetErrorColor7 255 128 128 #FF8080 80 | dataSetLegendColor7 0 0 192 #0000C0 81 | dataSetRowTitleColor7 0 0 192 #0000C0 82 | dataSetBarFillColor8 255 160 64 #FFA040 83 | dataSetBarPatternColor8 255 160 64 #FFA040 84 | dataSetFillColor8 255 160 64 #FFA040 85 | dataSetLineColor8 255 160 64 #FFA040 86 | dataSetBorderColor8 255 160 64 #FFA040 87 | dataSetBackgroundColor8 255 160 64 #FFA040 88 | dataSetErrorColor8 255 160 64 #FFA040 89 | dataSetLegendColor8 0 0 192 #0000C0 90 | dataSetRowTitleColor8 0 0 192 #0000C0 91 | dataSetBarFillColor9 192 192 0 #C0C000 92 | dataSetBarPatternColor9 192 192 0 #C0C000 93 | dataSetFillColor9 192 192 0 #C0C000 94 | dataSetLineColor9 192 192 0 #C0C000 95 | dataSetBorderColor9 192 192 0 #C0C000 96 | dataSetBackgroundColor9 192 192 0 #C0C000 97 | dataSetErrorColor9 192 192 0 #C0C000 98 | dataSetLegendColor9 0 0 192 #0000C0 99 | dataSetRowTitleColor9 0 0 192 #0000C0 100 | -------------------------------------------------------------------------------- /data-raw/schemes/fir.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 234 254 255 #EAFEFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 0 #000000 4 | axisLabelColor 0 0 0 #000000 5 | axisTitleColor 0 0 0 #000000 6 | graphTitleColor 0 0 0 #000000 7 | objectTextColor 0 0 0 #000000 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 51 102 102 #336666 10 | objectLinesColor 32 178 170 #20B2AA 11 | objectPatternColor 32 178 170 #20B2AA 12 | embeddedTableBorderColor 32 178 170 #20B2AA 13 | embeddedTableLineUnderTitleColor 32 178 170 #20B2AA 14 | embeddedTableLineNextToRowTitleColor 32 178 170 #20B2AA 15 | embeddedTableTextColor 51 102 102 #336666 16 | embeddedTableGridColor 32 178 170 #20B2AA 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 157 248 255 #9DF8FF 20 | dataSetBarPatternColor1 157 248 255 #9DF8FF 21 | dataSetFillColor1 157 248 255 #9DF8FF 22 | dataSetLineColor1 157 248 255 #9DF8FF 23 | dataSetBorderColor1 51 102 102 #336666 24 | dataSetBackgroundColor1 157 248 255 #9DF8FF 25 | dataSetErrorColor1 51 102 102 #336666 26 | dataSetLegendColor1 51 102 102 #336666 27 | dataSetRowTitleColor1 0 0 0 #000000 28 | dataSetBarFillColor2 32 178 170 #20B2AA 29 | dataSetBarPatternColor2 32 178 170 #20B2AA 30 | dataSetFillColor2 32 178 170 #20B2AA 31 | dataSetLineColor2 32 178 170 #20B2AA 32 | dataSetBorderColor2 32 178 170 #20B2AA 33 | dataSetBackgroundColor2 32 178 170 #20B2AA 34 | dataSetErrorColor2 32 178 170 #20B2AA 35 | dataSetLegendColor2 51 102 102 #336666 36 | dataSetRowTitleColor2 0 0 0 #000000 37 | dataSetBarFillColor3 153 204 204 #99CCCC 38 | dataSetBarPatternColor3 153 204 204 #99CCCC 39 | dataSetFillColor3 153 204 204 #99CCCC 40 | dataSetLineColor3 153 204 204 #99CCCC 41 | dataSetBorderColor3 153 204 204 #99CCCC 42 | dataSetBackgroundColor3 153 204 204 #99CCCC 43 | dataSetErrorColor3 153 204 204 #99CCCC 44 | dataSetLegendColor3 51 102 102 #336666 45 | dataSetRowTitleColor3 0 0 0 #000000 46 | dataSetBarFillColor4 157 248 255 #9DF8FF 47 | dataSetBarPatternColor4 157 248 255 #9DF8FF 48 | dataSetFillColor4 157 248 255 #9DF8FF 49 | dataSetLineColor4 157 248 255 #9DF8FF 50 | dataSetBorderColor4 32 178 170 #20B2AA 51 | dataSetBackgroundColor4 157 248 255 #9DF8FF 52 | dataSetErrorColor4 32 178 170 #20B2AA 53 | dataSetLegendColor4 51 102 102 #336666 54 | dataSetRowTitleColor4 0 0 0 #000000 55 | dataSetBarFillColor5 51 102 102 #336666 56 | dataSetBarPatternColor5 51 102 102 #336666 57 | dataSetFillColor5 51 102 102 #336666 58 | dataSetLineColor5 51 102 102 #336666 59 | dataSetBorderColor5 0 0 0 #000000 60 | dataSetBackgroundColor5 51 102 102 #336666 61 | dataSetErrorColor5 51 102 102 #336666 62 | dataSetLegendColor5 51 102 102 #336666 63 | dataSetRowTitleColor5 0 0 0 #000000 64 | dataSetBarFillColor6 32 178 170 #20B2AA 65 | dataSetBarPatternColor6 32 178 170 #20B2AA 66 | dataSetFillColor6 32 178 170 #20B2AA 67 | dataSetLineColor6 32 178 170 #20B2AA 68 | dataSetBorderColor6 32 178 170 #20B2AA 69 | dataSetBackgroundColor6 32 178 170 #20B2AA 70 | dataSetErrorColor6 32 178 170 #20B2AA 71 | dataSetLegendColor6 51 102 102 #336666 72 | dataSetRowTitleColor6 0 0 0 #000000 73 | dataSetBarFillColor7 153 204 204 #99CCCC 74 | dataSetBarPatternColor7 153 204 204 #99CCCC 75 | dataSetFillColor7 153 204 204 #99CCCC 76 | dataSetLineColor7 153 204 204 #99CCCC 77 | dataSetBorderColor7 51 102 102 #336666 78 | dataSetBackgroundColor7 153 204 204 #99CCCC 79 | dataSetErrorColor7 51 102 102 #336666 80 | dataSetLegendColor7 51 102 102 #336666 81 | dataSetRowTitleColor7 0 0 0 #000000 82 | dataSetBarFillColor8 0 0 0 #000000 83 | dataSetBarPatternColor8 0 0 0 #000000 84 | dataSetFillColor8 0 0 0 #000000 85 | dataSetLineColor8 0 0 0 #000000 86 | dataSetBorderColor8 0 0 0 #000000 87 | dataSetBackgroundColor8 0 0 0 #000000 88 | dataSetErrorColor8 0 0 0 #000000 89 | dataSetLegendColor8 51 102 102 #336666 90 | dataSetRowTitleColor8 0 0 0 #000000 91 | dataSetBarFillColor9 51 102 102 #336666 92 | dataSetBarPatternColor9 51 102 102 #336666 93 | dataSetFillColor9 51 102 102 #336666 94 | dataSetLineColor9 51 102 102 #336666 95 | dataSetBorderColor9 51 102 102 #336666 96 | dataSetBackgroundColor9 51 102 102 #336666 97 | dataSetErrorColor9 51 102 102 #336666 98 | dataSetLegendColor9 51 102 102 #336666 99 | dataSetRowTitleColor9 0 0 0 #000000 100 | -------------------------------------------------------------------------------- /data-raw/schemes/stained_glass.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 0 0 0 #000000 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 212 212 212 #D4D4D4 4 | axisLabelColor 255 255 255 #FFFFFF 5 | axisTitleColor 255 255 255 #FFFFFF 6 | graphTitleColor 255 255 255 #FFFFFF 7 | objectTextColor 255 255 255 #FFFFFF 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 255 255 255 #FFFFFF 10 | objectLinesColor 255 255 255 #FFFFFF 11 | objectPatternColor 255 255 255 #FFFFFF 12 | embeddedTableBorderColor 255 255 255 #FFFFFF 13 | embeddedTableLineUnderTitleColor 255 255 255 #FFFFFF 14 | embeddedTableLineNextToRowTitleColor 255 255 255 #FFFFFF 15 | embeddedTableTextColor 255 255 255 #FFFFFF 16 | embeddedTableGridColor 255 255 255 #FFFFFF 17 | embeddedTablePatternColor 0 0 0 #000000 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 255 0 0 #FF0000 20 | dataSetBarPatternColor1 255 0 0 #FF0000 21 | dataSetFillColor1 255 0 0 #FF0000 22 | dataSetLineColor1 255 0 0 #FF0000 23 | dataSetBorderColor1 255 0 0 #FF0000 24 | dataSetBackgroundColor1 255 0 0 #FF0000 25 | dataSetErrorColor1 255 0 0 #FF0000 26 | dataSetLegendColor1 255 0 0 #FF0000 27 | dataSetRowTitleColor1 255 255 255 #FFFFFF 28 | dataSetBarFillColor2 255 255 0 #FFFF00 29 | dataSetBarPatternColor2 255 255 0 #FFFF00 30 | dataSetFillColor2 255 255 0 #FFFF00 31 | dataSetLineColor2 255 255 0 #FFFF00 32 | dataSetBorderColor2 255 255 0 #FFFF00 33 | dataSetBackgroundColor2 255 255 0 #FFFF00 34 | dataSetErrorColor2 255 255 0 #FFFF00 35 | dataSetLegendColor2 255 255 0 #FFFF00 36 | dataSetRowTitleColor2 255 255 255 #FFFFFF 37 | dataSetBarFillColor3 0 255 0 #00FF00 38 | dataSetBarPatternColor3 0 255 0 #00FF00 39 | dataSetFillColor3 0 255 0 #00FF00 40 | dataSetLineColor3 0 255 0 #00FF00 41 | dataSetBorderColor3 0 255 0 #00FF00 42 | dataSetBackgroundColor3 0 255 0 #00FF00 43 | dataSetErrorColor3 0 255 0 #00FF00 44 | dataSetLegendColor3 0 255 0 #00FF00 45 | dataSetRowTitleColor3 255 255 255 #FFFFFF 46 | dataSetBarFillColor4 85 160 251 #55A0FB 47 | dataSetBarPatternColor4 85 160 251 #55A0FB 48 | dataSetFillColor4 85 160 251 #55A0FB 49 | dataSetLineColor4 85 160 251 #55A0FB 50 | dataSetBorderColor4 85 160 251 #55A0FB 51 | dataSetBackgroundColor4 85 160 251 #55A0FB 52 | dataSetErrorColor4 85 160 251 #55A0FB 53 | dataSetLegendColor4 85 160 251 #55A0FB 54 | dataSetRowTitleColor4 255 255 255 #FFFFFF 55 | dataSetBarFillColor5 184 86 215 #B856D7 56 | dataSetBarPatternColor5 184 86 215 #B856D7 57 | dataSetFillColor5 184 86 215 #B856D7 58 | dataSetLineColor5 184 86 215 #B856D7 59 | dataSetBorderColor5 184 86 215 #B856D7 60 | dataSetBackgroundColor5 184 86 215 #B856D7 61 | dataSetErrorColor5 184 86 215 #B856D7 62 | dataSetLegendColor5 176 127 192 #B07FC0 63 | dataSetRowTitleColor5 255 255 255 #FFFFFF 64 | dataSetBarFillColor6 247 78 214 #F74ED6 65 | dataSetBarPatternColor6 247 78 214 #F74ED6 66 | dataSetFillColor6 247 78 214 #F74ED6 67 | dataSetLineColor6 247 78 214 #F74ED6 68 | dataSetBorderColor6 247 78 214 #F74ED6 69 | dataSetBackgroundColor6 247 78 214 #F74ED6 70 | dataSetErrorColor6 247 78 214 #F74ED6 71 | dataSetLegendColor6 247 78 214 #F74ED6 72 | dataSetRowTitleColor6 255 255 255 #FFFFFF 73 | dataSetBarFillColor7 255 128 0 #FF8000 74 | dataSetBarPatternColor7 255 128 0 #FF8000 75 | dataSetFillColor7 255 128 0 #FF8000 76 | dataSetLineColor7 255 128 0 #FF8000 77 | dataSetBorderColor7 255 128 0 #FF8000 78 | dataSetBackgroundColor7 255 128 0 #FF8000 79 | dataSetErrorColor7 255 128 0 #FF8000 80 | dataSetLegendColor7 255 128 0 #FF8000 81 | dataSetRowTitleColor7 255 255 255 #FFFFFF 82 | dataSetBarFillColor8 0 0 192 #0000C0 83 | dataSetBarPatternColor8 0 0 192 #0000C0 84 | dataSetFillColor8 0 0 192 #0000C0 85 | dataSetLineColor8 0 0 192 #0000C0 86 | dataSetBorderColor8 0 0 192 #0000C0 87 | dataSetBackgroundColor8 0 0 192 #0000C0 88 | dataSetErrorColor8 0 0 192 #0000C0 89 | dataSetLegendColor8 0 0 192 #0000C0 90 | dataSetRowTitleColor8 255 255 255 #FFFFFF 91 | dataSetBarFillColor9 255 255 0 #FFFF00 92 | dataSetBarPatternColor9 255 255 0 #FFFF00 93 | dataSetFillColor9 255 255 0 #FFFF00 94 | dataSetLineColor9 0 192 0 #00C000 95 | dataSetBorderColor9 0 192 0 #00C000 96 | dataSetBackgroundColor9 255 255 0 #FFFF00 97 | dataSetErrorColor9 255 255 0 #FFFF00 98 | dataSetLegendColor9 255 255 0 #FFFF00 99 | dataSetRowTitleColor9 255 255 255 #FFFFFF 100 | -------------------------------------------------------------------------------- /data-raw/schemes/neon.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 0 0 128 #000080 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 247 78 214 #F74ED6 4 | axisLabelColor 247 78 214 #F74ED6 5 | axisTitleColor 247 78 214 #F74ED6 6 | graphTitleColor 247 78 214 #F74ED6 7 | objectTextColor 247 78 214 #F74ED6 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 247 78 214 #F74ED6 10 | objectLinesColor 247 78 214 #F74ED6 11 | objectPatternColor 247 78 214 #F74ED6 12 | embeddedTableBorderColor 247 78 214 #F74ED6 13 | embeddedTableLineUnderTitleColor 247 78 214 #F74ED6 14 | embeddedTableLineNextToRowTitleColor 247 78 214 #F74ED6 15 | embeddedTableTextColor 247 78 214 #F74ED6 16 | embeddedTableGridColor 247 78 214 #F74ED6 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 255 255 255 #FFFFFF 20 | dataSetBarPatternColor1 0 255 0 #00FF00 21 | dataSetFillColor1 255 255 255 #FFFFFF 22 | dataSetLineColor1 0 255 0 #00FF00 23 | dataSetBorderColor1 255 255 0 #FFFF00 24 | dataSetBackgroundColor1 0 255 0 #00FF00 25 | dataSetErrorColor1 255 255 0 #FFFF00 26 | dataSetLegendColor1 247 78 214 #F74ED6 27 | dataSetRowTitleColor1 247 78 214 #F74ED6 28 | dataSetBarFillColor2 255 255 255 #FFFFFF 29 | dataSetBarPatternColor2 0 0 255 #0000FF 30 | dataSetFillColor2 255 255 255 #FFFFFF 31 | dataSetLineColor2 0 0 255 #0000FF 32 | dataSetBorderColor2 0 255 0 #00FF00 33 | dataSetBackgroundColor2 0 0 255 #0000FF 34 | dataSetErrorColor2 0 255 0 #00FF00 35 | dataSetLegendColor2 247 78 214 #F74ED6 36 | dataSetRowTitleColor2 247 78 214 #F74ED6 37 | dataSetBarFillColor3 255 255 255 #FFFFFF 38 | dataSetBarPatternColor3 247 78 214 #F74ED6 39 | dataSetFillColor3 255 255 255 #FFFFFF 40 | dataSetLineColor3 247 78 214 #F74ED6 41 | dataSetBorderColor3 247 78 214 #F74ED6 42 | dataSetBackgroundColor3 247 78 214 #F74ED6 43 | dataSetErrorColor3 247 78 214 #F74ED6 44 | dataSetLegendColor3 247 78 214 #F74ED6 45 | dataSetRowTitleColor3 247 78 214 #F74ED6 46 | dataSetBarFillColor4 255 255 255 #FFFFFF 47 | dataSetBarPatternColor4 255 255 0 #FFFF00 48 | dataSetFillColor4 255 255 255 #FFFFFF 49 | dataSetLineColor4 255 255 0 #FFFF00 50 | dataSetBorderColor4 255 255 0 #FFFF00 51 | dataSetBackgroundColor4 255 255 0 #FFFF00 52 | dataSetErrorColor4 255 255 0 #FFFF00 53 | dataSetLegendColor4 247 78 214 #F74ED6 54 | dataSetRowTitleColor4 247 78 214 #F74ED6 55 | dataSetBarFillColor5 255 255 255 #FFFFFF 56 | dataSetBarPatternColor5 0 255 0 #00FF00 57 | dataSetFillColor5 255 255 255 #FFFFFF 58 | dataSetLineColor5 0 255 0 #00FF00 59 | dataSetBorderColor5 0 255 0 #00FF00 60 | dataSetBackgroundColor5 0 255 0 #00FF00 61 | dataSetErrorColor5 0 255 0 #00FF00 62 | dataSetLegendColor5 247 78 214 #F74ED6 63 | dataSetRowTitleColor5 247 78 214 #F74ED6 64 | dataSetBarFillColor6 255 255 255 #FFFFFF 65 | dataSetBarPatternColor6 0 0 255 #0000FF 66 | dataSetFillColor6 255 255 255 #FFFFFF 67 | dataSetLineColor6 0 0 255 #0000FF 68 | dataSetBorderColor6 0 0 255 #0000FF 69 | dataSetBackgroundColor6 0 0 255 #0000FF 70 | dataSetErrorColor6 0 0 255 #0000FF 71 | dataSetLegendColor6 247 78 214 #F74ED6 72 | dataSetRowTitleColor6 247 78 214 #F74ED6 73 | dataSetBarFillColor7 255 255 255 #FFFFFF 74 | dataSetBarPatternColor7 255 255 0 #FFFF00 75 | dataSetFillColor7 255 255 255 #FFFFFF 76 | dataSetLineColor7 255 255 0 #FFFF00 77 | dataSetBorderColor7 255 255 0 #FFFF00 78 | dataSetBackgroundColor7 255 255 0 #FFFF00 79 | dataSetErrorColor7 255 255 0 #FFFF00 80 | dataSetLegendColor7 247 78 214 #F74ED6 81 | dataSetRowTitleColor7 247 78 214 #F74ED6 82 | dataSetBarFillColor8 255 255 255 #FFFFFF 83 | dataSetBarPatternColor8 0 0 255 #0000FF 84 | dataSetFillColor8 255 255 255 #FFFFFF 85 | dataSetLineColor8 0 0 255 #0000FF 86 | dataSetBorderColor8 0 0 255 #0000FF 87 | dataSetBackgroundColor8 0 0 255 #0000FF 88 | dataSetErrorColor8 0 0 255 #0000FF 89 | dataSetLegendColor8 247 78 214 #F74ED6 90 | dataSetRowTitleColor8 247 78 214 #F74ED6 91 | dataSetBarFillColor9 255 255 255 #FFFFFF 92 | dataSetBarPatternColor9 247 78 214 #F74ED6 93 | dataSetFillColor9 255 255 255 #FFFFFF 94 | dataSetLineColor9 247 78 214 #F74ED6 95 | dataSetBorderColor9 247 78 214 #F74ED6 96 | dataSetBackgroundColor9 247 78 214 #F74ED6 97 | dataSetErrorColor9 247 78 214 #F74ED6 98 | dataSetLegendColor9 247 78 214 #F74ED6 99 | dataSetRowTitleColor9 247 78 214 #F74ED6 100 | -------------------------------------------------------------------------------- /data-raw/schemes/winter_soft.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 255 #FFFFFF 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 0 0 192 #0000C0 4 | axisLabelColor 0 0 192 #0000C0 5 | axisTitleColor 0 0 192 #0000C0 6 | graphTitleColor 0 0 192 #0000C0 7 | objectTextColor 0 0 192 #0000C0 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 0 0 192 #0000C0 10 | objectLinesColor 0 0 192 #0000C0 11 | objectPatternColor 0 0 192 #0000C0 12 | embeddedTableBorderColor 0 0 192 #0000C0 13 | embeddedTableLineUnderTitleColor 0 0 192 #0000C0 14 | embeddedTableLineNextToRowTitleColor 0 0 192 #0000C0 15 | embeddedTableTextColor 0 0 192 #0000C0 16 | embeddedTableGridColor 0 0 192 #0000C0 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 85 160 251 #55A0FB 20 | dataSetBarPatternColor1 85 160 251 #55A0FB 21 | dataSetFillColor1 85 160 251 #55A0FB 22 | dataSetLineColor1 85 160 251 #55A0FB 23 | dataSetBorderColor1 85 160 251 #55A0FB 24 | dataSetBackgroundColor1 85 160 251 #55A0FB 25 | dataSetErrorColor1 85 160 251 #55A0FB 26 | dataSetLegendColor1 0 0 192 #0000C0 27 | dataSetRowTitleColor1 0 0 192 #0000C0 28 | dataSetBarFillColor2 247 78 214 #F74ED6 29 | dataSetBarPatternColor2 247 78 214 #F74ED6 30 | dataSetFillColor2 247 78 214 #F74ED6 31 | dataSetLineColor2 247 78 214 #F74ED6 32 | dataSetBorderColor2 247 78 214 #F74ED6 33 | dataSetBackgroundColor2 247 78 214 #F74ED6 34 | dataSetErrorColor2 247 78 214 #F74ED6 35 | dataSetLegendColor2 0 0 192 #0000C0 36 | dataSetRowTitleColor2 0 0 192 #0000C0 37 | dataSetBarFillColor3 87 87 249 #5757F9 38 | dataSetBarPatternColor3 87 87 249 #5757F9 39 | dataSetFillColor3 87 87 249 #5757F9 40 | dataSetLineColor3 87 87 249 #5757F9 41 | dataSetBorderColor3 87 87 249 #5757F9 42 | dataSetBackgroundColor3 87 87 249 #5757F9 43 | dataSetErrorColor3 87 87 249 #5757F9 44 | dataSetLegendColor3 0 0 192 #0000C0 45 | dataSetRowTitleColor3 0 0 192 #0000C0 46 | dataSetBarFillColor4 200 222 249 #C8DEF9 47 | dataSetBarPatternColor4 200 222 249 #C8DEF9 48 | dataSetFillColor4 200 222 249 #C8DEF9 49 | dataSetLineColor4 200 222 249 #C8DEF9 50 | dataSetBorderColor4 200 222 249 #C8DEF9 51 | dataSetBackgroundColor4 200 222 249 #C8DEF9 52 | dataSetErrorColor4 200 222 249 #C8DEF9 53 | dataSetLegendColor4 0 0 192 #0000C0 54 | dataSetRowTitleColor4 0 0 192 #0000C0 55 | dataSetBarFillColor5 222 139 249 #DE8BF9 56 | dataSetBarPatternColor5 222 139 249 #DE8BF9 57 | dataSetFillColor5 222 139 249 #DE8BF9 58 | dataSetLineColor5 222 139 249 #DE8BF9 59 | dataSetBorderColor5 222 139 249 #DE8BF9 60 | dataSetBackgroundColor5 222 139 249 #DE8BF9 61 | dataSetErrorColor5 222 139 249 #DE8BF9 62 | dataSetLegendColor5 0 0 192 #0000C0 63 | dataSetRowTitleColor5 0 0 192 #0000C0 64 | dataSetBarFillColor6 5 190 120 #05BE78 65 | dataSetBarPatternColor6 5 190 120 #05BE78 66 | dataSetFillColor6 5 190 120 #05BE78 67 | dataSetLineColor6 5 190 120 #05BE78 68 | dataSetBorderColor6 5 190 120 #05BE78 69 | dataSetBackgroundColor6 5 190 120 #05BE78 70 | dataSetErrorColor6 5 190 120 #05BE78 71 | dataSetLegendColor6 0 0 192 #0000C0 72 | dataSetRowTitleColor6 0 0 192 #0000C0 73 | dataSetBarFillColor7 144 191 249 #90BFF9 74 | dataSetBarPatternColor7 144 191 249 #90BFF9 75 | dataSetFillColor7 144 191 249 #90BFF9 76 | dataSetLineColor7 144 191 249 #90BFF9 77 | dataSetBorderColor7 144 191 249 #90BFF9 78 | dataSetBackgroundColor7 144 191 249 #90BFF9 79 | dataSetErrorColor7 144 191 249 #90BFF9 80 | dataSetLegendColor7 0 0 192 #0000C0 81 | dataSetRowTitleColor7 0 0 192 #0000C0 82 | dataSetBarFillColor8 247 171 232 #F7ABE8 83 | dataSetBarPatternColor8 247 171 232 #F7ABE8 84 | dataSetFillColor8 247 171 232 #F7ABE8 85 | dataSetLineColor8 247 171 232 #F7ABE8 86 | dataSetBorderColor8 247 171 232 #F7ABE8 87 | dataSetBackgroundColor8 247 171 232 #F7ABE8 88 | dataSetErrorColor8 247 171 232 #F7ABE8 89 | dataSetLegendColor8 0 0 192 #0000C0 90 | dataSetRowTitleColor8 0 0 192 #0000C0 91 | dataSetBarFillColor9 141 141 255 #8D8DFF 92 | dataSetBarPatternColor9 141 141 255 #8D8DFF 93 | dataSetFillColor9 141 141 255 #8D8DFF 94 | dataSetLineColor9 141 141 255 #8D8DFF 95 | dataSetBorderColor9 141 141 255 #8D8DFF 96 | dataSetBackgroundColor9 141 141 255 #8D8DFF 97 | dataSetErrorColor9 141 141 255 #8D8DFF 98 | dataSetLegendColor9 0 0 192 #0000C0 99 | dataSetRowTitleColor9 0 0 192 #0000C0 100 | -------------------------------------------------------------------------------- /data-raw/schemes/spring.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 180 249 159 #B4F99F 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 65 105 225 #4169E1 4 | axisLabelColor 65 105 225 #4169E1 5 | axisTitleColor 65 105 225 #4169E1 6 | graphTitleColor 65 105 225 #4169E1 7 | objectTextColor 65 105 225 #4169E1 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 65 105 225 #4169E1 10 | objectLinesColor 65 105 225 #4169E1 11 | objectPatternColor 65 105 225 #4169E1 12 | embeddedTableBorderColor 65 105 225 #4169E1 13 | embeddedTableLineUnderTitleColor 65 105 225 #4169E1 14 | embeddedTableLineNextToRowTitleColor 65 105 225 #4169E1 15 | embeddedTableTextColor 65 105 225 #4169E1 16 | embeddedTableGridColor 65 105 225 #4169E1 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 202 255 202 #CAFFCA 19 | dataSetBarFillColor1 30 144 255 #1E90FF 20 | dataSetBarPatternColor1 30 144 255 #1E90FF 21 | dataSetFillColor1 30 144 255 #1E90FF 22 | dataSetLineColor1 30 144 255 #1E90FF 23 | dataSetBorderColor1 30 144 255 #1E90FF 24 | dataSetBackgroundColor1 30 144 255 #1E90FF 25 | dataSetErrorColor1 30 144 255 #1E90FF 26 | dataSetLegendColor1 65 105 225 #4169E1 27 | dataSetRowTitleColor1 0 0 0 #000000 28 | dataSetBarFillColor2 255 255 255 #FFFFFF 29 | dataSetBarPatternColor2 255 255 255 #FFFFFF 30 | dataSetFillColor2 255 255 255 #FFFFFF 31 | dataSetLineColor2 255 255 255 #FFFFFF 32 | dataSetBorderColor2 63 113 163 #3F71A3 33 | dataSetBackgroundColor2 255 255 255 #FFFFFF 34 | dataSetErrorColor2 63 113 163 #3F71A3 35 | dataSetLegendColor2 65 105 225 #4169E1 36 | dataSetRowTitleColor2 0 0 0 #000000 37 | dataSetBarFillColor3 255 255 0 #FFFF00 38 | dataSetBarPatternColor3 255 255 0 #FFFF00 39 | dataSetFillColor3 255 255 0 #FFFF00 40 | dataSetLineColor3 255 255 0 #FFFF00 41 | dataSetBorderColor3 255 160 64 #FFA040 42 | dataSetBackgroundColor3 255 255 0 #FFFF00 43 | dataSetErrorColor3 255 160 64 #FFA040 44 | dataSetLegendColor3 65 105 225 #4169E1 45 | dataSetRowTitleColor3 0 0 0 #000000 46 | dataSetBarFillColor4 255 204 0 #FFCC00 47 | dataSetBarPatternColor4 255 204 0 #FFCC00 48 | dataSetFillColor4 255 204 0 #FFCC00 49 | dataSetLineColor4 255 204 0 #FFCC00 50 | dataSetBorderColor4 255 128 0 #FF8000 51 | dataSetBackgroundColor4 255 204 0 #FFCC00 52 | dataSetErrorColor4 255 128 0 #FF8000 53 | dataSetLegendColor4 65 105 225 #4169E1 54 | dataSetRowTitleColor4 0 0 0 #000000 55 | dataSetBarFillColor5 144 238 144 #90EE90 56 | dataSetBarPatternColor5 144 238 144 #90EE90 57 | dataSetFillColor5 144 238 144 #90EE90 58 | dataSetLineColor5 144 238 144 #90EE90 59 | dataSetBorderColor5 39 157 0 #279D00 60 | dataSetBackgroundColor5 144 238 144 #90EE90 61 | dataSetErrorColor5 39 157 0 #279D00 62 | dataSetLegendColor5 65 105 225 #4169E1 63 | dataSetRowTitleColor5 0 0 0 #000000 64 | dataSetBarFillColor6 51 204 0 #33CC00 65 | dataSetBarPatternColor6 51 204 0 #33CC00 66 | dataSetFillColor6 51 204 0 #33CC00 67 | dataSetLineColor6 51 204 0 #33CC00 68 | dataSetBorderColor6 0 128 0 #008000 69 | dataSetBackgroundColor6 51 204 0 #33CC00 70 | dataSetErrorColor6 0 128 0 #008000 71 | dataSetLegendColor6 65 105 225 #4169E1 72 | dataSetRowTitleColor6 0 0 0 #000000 73 | dataSetBarFillColor7 204 102 153 #CC6699 74 | dataSetBarPatternColor7 204 102 153 #CC6699 75 | dataSetFillColor7 204 102 153 #CC6699 76 | dataSetLineColor7 204 102 153 #CC6699 77 | dataSetBorderColor7 204 102 153 #CC6699 78 | dataSetBackgroundColor7 204 102 153 #CC6699 79 | dataSetErrorColor7 204 102 153 #CC6699 80 | dataSetLegendColor7 65 105 225 #4169E1 81 | dataSetRowTitleColor7 0 0 0 #000000 82 | dataSetBarFillColor8 255 153 255 #FF99FF 83 | dataSetBarPatternColor8 255 153 255 #FF99FF 84 | dataSetFillColor8 255 153 255 #FF99FF 85 | dataSetLineColor8 255 153 255 #FF99FF 86 | dataSetBorderColor8 204 102 153 #CC6699 87 | dataSetBackgroundColor8 255 153 255 #FF99FF 88 | dataSetErrorColor8 204 102 153 #CC6699 89 | dataSetLegendColor8 65 105 225 #4169E1 90 | dataSetRowTitleColor8 0 0 0 #000000 91 | dataSetBarFillColor9 157 248 255 #9DF8FF 92 | dataSetBarPatternColor9 157 248 255 #9DF8FF 93 | dataSetFillColor9 157 248 255 #9DF8FF 94 | dataSetLineColor9 157 248 255 #9DF8FF 95 | dataSetBorderColor9 102 153 204 #6699CC 96 | dataSetBackgroundColor9 157 248 255 #9DF8FF 97 | dataSetErrorColor9 102 153 204 #6699CC 98 | dataSetLegendColor9 65 105 225 #4169E1 99 | dataSetRowTitleColor9 0 0 0 #000000 100 | -------------------------------------------------------------------------------- /data-raw/schemes/mustard_field.txt: -------------------------------------------------------------------------------- 1 | pageBackgroundColor 255 255 224 #FFFFE0 2 | plottingAreaColor 255 255 255 #FFFFFF 3 | axisColor 148 100 31 #94641F 4 | axisLabelColor 148 100 31 #94641F 5 | axisTitleColor 148 100 31 #94641F 6 | graphTitleColor 148 100 31 #94641F 7 | objectTextColor 39 39 61 #27273D 8 | objectFillColor 255 255 255 #FFFFFF 9 | objectBorderColor 192 96 0 #C06000 10 | objectLinesColor 139 144 206 #8B90CE 11 | objectPatternColor 192 192 0 #C0C000 12 | embeddedTableBorderColor 160 0 0 #A00000 13 | embeddedTableLineUnderTitleColor 160 0 0 #A00000 14 | embeddedTableLineNextToRowTitleColor 160 0 0 #A00000 15 | embeddedTableTextColor 91 99 185 #5B63B9 16 | embeddedTableGridColor 160 0 0 #A00000 17 | embeddedTablePatternColor 255 255 255 #FFFFFF 18 | embeddedTableFillColor 255 255 255 #FFFFFF 19 | dataSetBarFillColor1 192 181 123 #C0B57B 20 | dataSetBarPatternColor1 192 181 123 #C0B57B 21 | dataSetFillColor1 192 181 123 #C0B57B 22 | dataSetLineColor1 192 181 123 #C0B57B 23 | dataSetBorderColor1 192 181 123 #C0B57B 24 | dataSetBackgroundColor1 192 181 123 #C0B57B 25 | dataSetErrorColor1 192 181 123 #C0B57B 26 | dataSetLegendColor1 148 100 31 #94641F 27 | dataSetRowTitleColor1 148 100 31 #94641F 28 | dataSetBarFillColor2 128 128 0 #808000 29 | dataSetBarPatternColor2 128 128 0 #808000 30 | dataSetFillColor2 128 128 0 #808000 31 | dataSetLineColor2 140 125 55 #8C7D37 32 | dataSetBorderColor2 128 128 0 #808000 33 | dataSetBackgroundColor2 128 128 0 #808000 34 | dataSetErrorColor2 128 128 0 #808000 35 | dataSetLegendColor2 148 100 31 #94641F 36 | dataSetRowTitleColor2 148 100 31 #94641F 37 | dataSetBarFillColor3 192 192 0 #C0C000 38 | dataSetBarPatternColor3 192 192 0 #C0C000 39 | dataSetFillColor3 192 192 0 #C0C000 40 | dataSetLineColor3 192 192 0 #C0C000 41 | dataSetBorderColor3 192 192 0 #C0C000 42 | dataSetBackgroundColor3 192 192 0 #C0C000 43 | dataSetErrorColor3 192 192 0 #C0C000 44 | dataSetLegendColor3 148 100 31 #94641F 45 | dataSetRowTitleColor3 148 100 31 #94641F 46 | dataSetBarFillColor4 197 148 78 #C5944E 47 | dataSetBarPatternColor4 197 148 78 #C5944E 48 | dataSetFillColor4 197 148 78 #C5944E 49 | dataSetLineColor4 197 148 78 #C5944E 50 | dataSetBorderColor4 140 125 55 #8C7D37 51 | dataSetBackgroundColor4 197 148 78 #C5944E 52 | dataSetErrorColor4 197 148 78 #C5944E 53 | dataSetLegendColor4 148 100 31 #94641F 54 | dataSetRowTitleColor4 148 100 31 #94641F 55 | dataSetBarFillColor5 145 135 81 #918751 56 | dataSetBarPatternColor5 145 135 81 #918751 57 | dataSetFillColor5 145 135 81 #918751 58 | dataSetLineColor5 145 135 81 #918751 59 | dataSetBorderColor5 145 135 81 #918751 60 | dataSetBackgroundColor5 145 135 81 #918751 61 | dataSetErrorColor5 145 135 81 #918751 62 | dataSetLegendColor5 148 100 31 #94641F 63 | dataSetRowTitleColor5 148 100 31 #94641F 64 | dataSetBarFillColor6 255 192 128 #FFC080 65 | dataSetBarPatternColor6 255 192 128 #FFC080 66 | dataSetFillColor6 255 192 128 #FFC080 67 | dataSetLineColor6 255 192 128 #FFC080 68 | dataSetBorderColor6 128 128 0 #808000 69 | dataSetBackgroundColor6 255 192 128 #FFC080 70 | dataSetErrorColor6 255 192 128 #FFC080 71 | dataSetLegendColor6 148 100 31 #94641F 72 | dataSetRowTitleColor6 148 100 31 #94641F 73 | dataSetBarFillColor7 192 181 123 #C0B57B 74 | dataSetBarPatternColor7 192 181 123 #C0B57B 75 | dataSetFillColor7 192 181 123 #C0B57B 76 | dataSetLineColor7 192 181 123 #C0B57B 77 | dataSetBorderColor7 192 181 123 #C0B57B 78 | dataSetBackgroundColor7 192 181 123 #C0B57B 79 | dataSetErrorColor7 192 181 123 #C0B57B 80 | dataSetLegendColor7 148 100 31 #94641F 81 | dataSetRowTitleColor7 148 100 31 #94641F 82 | dataSetBarFillColor8 128 128 0 #808000 83 | dataSetBarPatternColor8 128 128 0 #808000 84 | dataSetFillColor8 128 128 0 #808000 85 | dataSetLineColor8 140 125 55 #8C7D37 86 | dataSetBorderColor8 128 128 0 #808000 87 | dataSetBackgroundColor8 128 128 0 #808000 88 | dataSetErrorColor8 128 128 0 #808000 89 | dataSetLegendColor8 148 100 31 #94641F 90 | dataSetRowTitleColor8 148 100 31 #94641F 91 | dataSetBarFillColor9 192 192 0 #C0C000 92 | dataSetBarPatternColor9 192 192 0 #C0C000 93 | dataSetFillColor9 192 192 0 #C0C000 94 | dataSetLineColor9 192 192 0 #C0C000 95 | dataSetBorderColor9 192 192 0 #C0C000 96 | dataSetBackgroundColor9 192 192 0 #C0C000 97 | dataSetErrorColor9 192 192 0 #C0C000 98 | dataSetLegendColor9 148 100 31 #94641F 99 | dataSetRowTitleColor9 148 100 31 #94641F 100 | --------------------------------------------------------------------------------