From dad97004e3cb9e825cab00e34ccbcc894db67b34 Mon Sep 17 00:00:00 2001 From: nfrerebeau Date: Sun, 30 Jun 2024 14:38:50 +0200 Subject: [PATCH] Prepare for next release --- CITATION.cff | 71 ++++++++++++---------------- DESCRIPTION | 2 +- NEWS.md | 4 +- R/khroma-package.R | 2 +- README.Rmd | 2 +- README.md | 23 ++++----- codecov.yml | 1 + codemeta.json | 8 ++-- man/figures/README-usage-plot-1.png | Bin 6849 -> 6818 bytes man/khroma-package.Rd | 2 +- pkgdown/_pkgdown.yml | 30 +++++++----- revdep/README.md | 28 +++++------ 12 files changed, 85 insertions(+), 88 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index cc2f629..9aea15e 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -1,18 +1,18 @@ -# ----------------------------------------------------------- -# CITATION file created with {cffr} R package, v0.5.0 +# -------------------------------------------- +# CITATION file created with {cffr} R package # See also: https://docs.ropensci.org/cffr/ -# ----------------------------------------------------------- +# -------------------------------------------- cff-version: 1.2.0 message: 'To cite package "khroma" in publications use:' type: software license: GPL-3.0-or-later title: 'khroma: Colour Schemes for Scientific Data Visualization' -version: 1.12.0 +version: 1.13.0 doi: 10.5281/zenodo.1472077 abstract: Color schemes ready for each type of data (qualitative, diverging or sequential), with colors that are distinct for all people, including color-blind readers. This - package provides an implementation of Paul Tol (2018) and Fabio Crameri (2018) + package provides an implementation of Paul Tol (2018) and Fabio Crameri (2018) color schemes for use with 'graphics' or 'ggplot2'. It provides tools to simulate color-blindness and to test how well the colors of any palette are identifiable. Several scientific thematic schemes (geologic timescale, land cover, FAO soils, @@ -33,13 +33,12 @@ preferred-citation: orcid: https://orcid.org/0000-0001-5759-4944 affiliation: Université Bordeaux Montaigne year: '2024' - location: - name: Pessac, France - notes: R package version 1.12.0 - doi: 10.5281/zenodo.1472077 - url: https://packages.tesselle.org/khroma/ institution: name: Université Bordeaux Montaigne + address: Pessac, France + notes: R package version 1.13.0 + doi: 10.5281/zenodo.1472077 + url: https://packages.tesselle.org/khroma/ repository: https://CRAN.R-project.org/package=khroma repository-code: https://github.com/tesselle/khroma url: https://packages.tesselle.org/khroma/ @@ -61,11 +60,10 @@ references: url: https://www.R-project.org/ authors: - name: R Core Team - location: - name: Vienna, Austria - year: '2024' institution: name: R Foundation for Statistical Computing + address: Vienna, Austria + year: '2024' version: '>= 3.5.0' - type: software title: graphics @@ -73,55 +71,50 @@ references: notes: Imports authors: - name: R Core Team - location: - name: Vienna, Austria - year: '2024' institution: name: R Foundation for Statistical Computing + address: Vienna, Austria + year: '2024' - type: software title: grDevices abstract: 'R: A Language and Environment for Statistical Computing' notes: Imports authors: - name: R Core Team - location: - name: Vienna, Austria - year: '2024' institution: name: R Foundation for Statistical Computing + address: Vienna, Austria + year: '2024' - type: software title: grid abstract: 'R: A Language and Environment for Statistical Computing' notes: Imports authors: - name: R Core Team - location: - name: Vienna, Austria - year: '2024' institution: name: R Foundation for Statistical Computing + address: Vienna, Austria + year: '2024' - type: software title: stats abstract: 'R: A Language and Environment for Statistical Computing' notes: Imports authors: - name: R Core Team - location: - name: Vienna, Austria - year: '2024' institution: name: R Foundation for Statistical Computing + address: Vienna, Austria + year: '2024' - type: software title: utils abstract: 'R: A Language and Environment for Statistical Computing' notes: Imports authors: - name: R Core Team - location: - name: Vienna, Austria - year: '2024' institution: name: R Foundation for Statistical Computing + address: Vienna, Austria + year: '2024' - type: software title: ggplot2 abstract: 'ggplot2: Create Elegant Data Visualisations Using the Grammar of Graphics' @@ -156,18 +149,10 @@ references: - family-names: Dunnington given-names: Dewey orcid: https://orcid.org/0000-0002-9415-4582 - year: '2024' -- type: software - title: ggraph - abstract: 'ggraph: An Implementation of Grammar of Graphics for Graphs and Networks' - notes: Suggests - url: https://ggraph.data-imaginist.com - repository: https://CRAN.R-project.org/package=ggraph - authors: - - family-names: Pedersen - given-names: Thomas Lin - email: thomasp85@gmail.com - orcid: https://orcid.org/0000-0002-5147-4711 + - family-names: Brand + given-names: Teun + name-particle: van den + orcid: https://orcid.org/0000-0002-9335-7468 year: '2024' - type: software title: knitr @@ -282,8 +267,9 @@ references: url: https://github.com/markvanderloo/tinytest repository: https://CRAN.R-project.org/package=tinytest authors: - - family-names: van der Loo + - family-names: Loo given-names: Mark + name-particle: van der email: mark.vanderloo@gmail.com orcid: https://orcid.org/0000-0002-9807-4686 year: '2024' @@ -344,4 +330,5 @@ identifiers: value: 10.5281/zenodo.10470003 - description: The Software Heritage identifier for version 1.4.0. type: swh - value: swh:1:dir:ac530bf9321ee33e982c1e3fa44c275e01ba3fb1 + value: swh:1:snp:4eeb6407ecccc7391eddcf1c83dd8b0a20168592 + diff --git a/DESCRIPTION b/DESCRIPTION index 1cf805f..4cb909c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: khroma Title: Colour Schemes for Scientific Data Visualization -Version: 1.12.0.9000 +Version: 1.13.0 Authors@R: c( person("Nicolas", "Frerebeau", , "nicolas.frerebeau@u-bordeaux-montaigne.fr", role = c("aut", "cre"), comment = c(ORCID = "0000-0001-5759-4944", affiliation = "Université Bordeaux Montaigne")), diff --git a/NEWS.md b/NEWS.md index b5264c2..0c5cc1c 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# khroma 1.12.0.9000 +# khroma 1.13.0 ## New functions * Add `palette_color_picker()`, `palette_color_continuous()` and `palette_color_discrete()` to map values to colors. * Add `palette_shape()` and `palette_line()` to map values to symbols. @@ -17,7 +17,7 @@ * Add Paul Tol `nightfall` and `incandescent` colour schemes. ## Bugfixes & changes -* Fix `discreterainbow` scheme (qualitative scheme instead of sequential). +* Fix `discreterainbow` scheme (*qualitative* scheme instead of *sequential*). # khroma 1.11.0 ## Bugfixes & changes diff --git a/R/khroma-package.R b/R/khroma-package.R index 457b80b..08aeca0 100644 --- a/R/khroma-package.R +++ b/R/khroma-package.R @@ -2,7 +2,7 @@ #' \tabular{ll}{ #' **Package:** \tab khroma \cr #' **Type:** \tab Package \cr -#' **Version:** \tab 1.12.0 \cr +#' **Version:** \tab 1.13.0 \cr #' **License:** \tab GPL-3 \cr #' **Zenodo:** \tab \doi{10.5281/zenodo.1472077} \cr #' } diff --git a/README.Rmd b/README.Rmd index b13ef55..c9d0214 100644 --- a/README.Rmd +++ b/README.Rmd @@ -21,7 +21,7 @@ Sys.setlocale("LC_MESSAGES", 'en_GB.UTF-8') # Force locale [![R-CMD-check](https://github.com/tesselle/khroma/workflows/R-CMD-check/badge.svg)](https://github.com/tesselle/khroma/actions) [![codecov](https://codecov.io/gh/tesselle/khroma/branch/main/graph/badge.svg)](https://app.codecov.io/gh/tesselle/khroma) [![CodeFactor](https://www.codefactor.io/repository/github/tesselle/khroma/badge/main)](https://www.codefactor.io/repository/github/tesselle/khroma/overview/main) -[![Dependencies](https://tinyverse.netlify.com/badge/khroma)](https://cran.r-project.org/package=khroma) +[![Dependencies](https://tinyverse.netlify.app/badge/khroma)](https://cran.r-project.org/package=khroma) [![r-universe](https://tesselle.r-universe.dev/badges/khroma)](https://tesselle.r-universe.dev/khroma){.pkgdown-devel} [![CRAN Version](http://www.r-pkg.org/badges/version/khroma)](https://cran.r-project.org/package=khroma){.pkgdown-release} diff --git a/README.md b/README.md index ae4d4c6..e4180bb 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ [![R-CMD-check](https://github.com/tesselle/khroma/workflows/R-CMD-check/badge.svg)](https://github.com/tesselle/khroma/actions) [![codecov](https://codecov.io/gh/tesselle/khroma/branch/main/graph/badge.svg)](https://app.codecov.io/gh/tesselle/khroma) [![CodeFactor](https://www.codefactor.io/repository/github/tesselle/khroma/badge/main)](https://www.codefactor.io/repository/github/tesselle/khroma/overview/main) -[![Dependencies](https://tinyverse.netlify.com/badge/khroma)](https://cran.r-project.org/package=khroma) +[![Dependencies](https://tinyverse.netlify.app/badge/khroma)](https://cran.r-project.org/package=khroma) , - R package version 1.12.0, . + R package version 1.13.0, . A BibTeX entry for LaTeX users is @@ -85,7 +85,7 @@ or [**ggplot2**](https://github.com/tidyverse/ggplot2) and year = {2024}, organization = {Université Bordeaux Montaigne}, address = {Pessac, France}, - note = {R package version 1.12.0}, + note = {R package version 1.13.0}, doi = {10.5281/zenodo.1472077}, url = {https://packages.tesselle.org/khroma/}, } @@ -191,21 +191,20 @@ info() ### Color palettes and scales -`color()` returns a palette function that when called with a single -integer argument returns a vector of colors. +`color()` returns a function that when called with a single integer +argument returns a vector of colors. ``` r ## Paul Tol's bright color scheme bright <- color("bright") bright(7) -#> blue red green yellow cyan purple grey -#> "#4477AA" "#EE6677" "#228833" "#CCBB44" "#66CCEE" "#AA3377" "#BBBBBB" +#> [1] "#4477AA" "#EE6677" "#228833" "#CCBB44" "#66CCEE" "#AA3377" "#BBBBBB" #> attr(,"missing") #> [1] NA ``` ``` r -## Show the color palette +## Plot the color scheme plot_scheme(bright(7), colours = TRUE) ``` @@ -220,10 +219,11 @@ plot( x = mpg$displ, y = mpg$hwy, pch = 16, - col = color("bright")(7)[as.factor(mpg$class)], + col = palette_color_picker("bright")(mpg$class), xlab = "displ", ylab = "hwy", - panel.first = grid() + panel.first = grid(), + las = 1 ) ``` @@ -290,7 +290,8 @@ to this project, you agree to abide by its terms. ## References -
+
diff --git a/codecov.yml b/codecov.yml index 7803f3d..9373fa3 100644 --- a/codecov.yml +++ b/codecov.yml @@ -2,6 +2,7 @@ comment: false ignore: - "R/khroma-deprecated.R" + - "R/khroma-defunct.R" - "R/zzz.R" coverage: diff --git a/codemeta.json b/codemeta.json index 60492c4..3bc93c7 100644 --- a/codemeta.json +++ b/codemeta.json @@ -8,13 +8,13 @@ "codeRepository": "https://github.com/tesselle/khroma", "issueTracker": "https://github.com/tesselle/khroma/issues", "license": "https://spdx.org/licenses/GPL-3.0", - "version": "1.12.0", + "version": "1.13.0", "programmingLanguage": { "@type": "ComputerLanguage", "name": "R", "url": "https://r-project.org" }, - "runtimePlatform": "R version 4.3.2 (2023-10-31)", + "runtimePlatform": "R version 4.4.1 (2024-06-14)", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", @@ -228,7 +228,7 @@ }, "SystemRequirements": null }, - "fileSize": "1385.792KB", + "fileSize": "1412.117KB", "citation": [ { "@type": "SoftwareSourceCode", @@ -243,7 +243,7 @@ "name": "{khroma: Colour Schemes for Scientific Data Visualization}", "identifier": "10.5281/zenodo.1472077", "url": "https://packages.tesselle.org/khroma/", - "description": "R package version 1.12.0", + "description": "R package version 1.13.0", "@id": "https://doi.org/10.5281/zenodo.1472077", "sameAs": "https://doi.org/10.5281/zenodo.1472077" } diff --git a/man/figures/README-usage-plot-1.png b/man/figures/README-usage-plot-1.png index 33169a8fe5028c92676930e9db283b5472dc4abb..e1265e9457676df4a39379b00bcc79e816989390 100644 GIT binary patch delta 5884 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