Title: Vincent van Gogh Colour Palette Generator
Version: 0.1.3
Description: Provides 'ggplot2'-compatible colour palettes inspired by Vincent van Gogh's paintings. Each palette contains five colours, manually selected by hexadecimal values. Includes tools for assessing colour vision deficiency (CVD) accessibility.
License: MIT + file LICENSE
Encoding: UTF-8
LazyData: true
RoxygenNote: 7.3.3
Imports: ggplot2, rlang, methods, graphics, stats, utils
Suggests: scales, knitr, rmarkdown, colorspace, jsonlite, dplyr, testthat (≥ 3.0.0)
VignetteBuilder: knitr
URL: https://github.com/cherylisabella/vangogh
BugReports: https://github.com/cherylisabella/vangogh/issues
NeedsCompilation: no
Packaged: 2025-10-24 09:18:28 UTC; Isabella
Author: Cheryl Isabella Lim [aut, cre]
Maintainer: Cheryl Isabella Lim <cheryl.academic@gmail.com>
Depends: R (≥ 3.5.0)
Repository: CRAN
Date/Publication: 2025-10-24 16:00:02 UTC

vangogh

Description

list of palettes generated from Vincent van Gogh's paintings

Details

list of palettes generated from Vincent van Gogh's paintings

Author(s)

Maintainer: Cheryl Isabella Lim cheryl.academic@gmail.com

See Also

Useful links:


Batch Check CVD Accessibility for All Palettes

Description

Runs CVD accessibility checks across all Van Gogh palettes and returns a summary data frame. Useful for generating documentation and identifying the most accessible palettes.

Usage

check_all_vangogh_cvd(simulate = FALSE)

Arguments

simulate

Logical. If TRUE, displays simulations for each palette. Default FALSE.

Value

A data frame with CVD scores for all palettes

Examples

## Not run: 
# Get scores for all palettes
all_scores <- check_all_vangogh_cvd()

# Find the most accessible palettes
library(dplyr)
all_scores %>%
  group_by(palette) %>%
  summarise(avg_distance = mean(min_distance)) %>%
  arrange(desc(avg_distance))

## End(Not run)


Check palette accessibility with colorblind simulations

Description

Uses colorspace to simulate common forms of colorblindness.

Usage

check_palette(name, type = "discrete", n = NULL)

Arguments

name

Palette name (character)

type

Either "discrete" or "continuous" (default "discrete")

n

Number of colors for continuous palettes

Examples

## Not run: 
vangogh::check_palette("StarryNight")

## End(Not run)

Check Color Vision Deficiency (CVD) Accessibility of Van Gogh Palettes

Description

Simulates how a Van Gogh palette appears under different types of color vision deficiency and provides accessibility scores. This function complements the existing check_palette() function by adding visual simulation and quantitative metrics.

Usage

check_vangogh_cvd(
  palette_name,
  n = NULL,
  simulate = TRUE,
  return_scores = FALSE
)

Arguments

palette_name

Character string specifying the palette name (e.g., "StarryNight")

n

Integer. Number of colors to extract from palette. Default is NULL (uses all colors).

simulate

Logical. If TRUE, displays simulations for each CVD type. Default TRUE.

return_scores

Logical. If TRUE, returns detailed scoring data. Default FALSE.

Details

This function evaluates palette accessibility across three main types of color vision deficiency:

The function uses the colorspace package for CVD simulation and calculates minimum pairwise perceptual distance in CIELAB color space to assess distinguishability.

Value

If return_scores = TRUE, returns a data frame with CVD scores. Otherwise, displays visual simulations and prints a summary.

Examples

## Not run: 
# Visual simulation of StarryNight palette
check_vangogh_cvd("StarryNight")

# Get detailed scores without plotting
scores <- check_vangogh_cvd("Irises", simulate = FALSE, return_scores = TRUE)

# Check subset of colors
check_vangogh_cvd("CafeTerrace", n = 3)

## End(Not run)


Compare multiple Van Gogh palettes in a facet-style visualization

Description

Compare multiple Van Gogh palettes in a facet-style visualization

Usage

compare_palettes(
  palettes,
  show_hex = TRUE,
  colorblind = FALSE,
  type = "discrete",
  n = NULL
)

Arguments

palettes

Character vector of palette names

show_hex

Logical: display hex codes

colorblind

Logical: simulate colorblind view

type

"discrete" or "continuous"

n

Number of colors for continuous palettes


Generate CVD Scores Data for Package

Description

Internal function to generate the vangogh_cvd_scores dataset. Run this when updating the package to refresh CVD scores.

Usage

generate_cvd_scores_data()

Value

A data frame with CVD scores


Get CVD-Safe Van Gogh Palettes

Description

Returns a list of Van Gogh palettes that meet minimum accessibility standards for color vision deficiency.

Usage

get_cvd_safe_palettes(
  min_distance = 15,
  cvd_types = c("deutan", "protan", "tritan")
)

Arguments

min_distance

Numeric. Minimum CIELAB distance threshold. Default 15.

cvd_types

Character vector. Which CVD types to check. Options: "deutan", "protan", "tritan". Default checks all.

Value

Character vector of palette names that meet the criteria

Examples

## Not run: 
# Get highly accessible palettes
safe_palettes <- get_cvd_safe_palettes(min_distance = 20)

# Use a safe palette
ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) +
  geom_point() +
  scale_color_vangogh(safe_palettes[1])

## End(Not run)


Plot CVD Simulation for a Palette

Description

Plot CVD Simulation for a Palette

Usage

plot_cvd_simulation(palette_name, results)

Arguments

palette_name

Character string with palette name

results

List of CVD simulation results from check_vangogh_cvd


Description

Generates markdown badges for palette CVD accessibility ratings. Useful for including in README or documentation.

Usage

print_cvd_badge(palette_name)

Arguments

palette_name

Character string specifying the palette name

Value

Character string with markdown badge code

Examples

## Not run: 
# Generate badge for StarryNight
print_cvd_badge("StarryNight")

# Generate badges for all palettes
for (p in names(vangogh_palettes)) {
  cat(p, ": ")
  print_cvd_badge(p)
}

## End(Not run)


Generate a colorblind-safe Van Gogh palette

Description

Returns the original palette (colorblind adjustment removed).

Usage

safe_vangogh_palette(name, type = "discrete", n = NULL, colorblind = FALSE)

Arguments

name

Palette name

type

Either "discrete" or "continuous"

n

Number of colors for continuous palettes

colorblind

Logical, kept for compatibility


Scale color with Van Gogh palettes

Description

Scale color with Van Gogh palettes

Usage

scale_color_vangogh(name, discrete = TRUE, colorblind = FALSE, ...)

scale_colour_vangogh(name, discrete = TRUE, colorblind = FALSE, ...)

Arguments

name

Palette name

discrete

Logical: use discrete scale

colorblind

Logical: use colorblind-safe colors

...

Additional arguments to ggplot2 scale function


Scale fill with Van Gogh palettes

Description

Scale fill with Van Gogh palettes

Usage

scale_fill_vangogh(name, discrete = TRUE, colorblind = FALSE, ...)

Arguments

name

Palette name

discrete

Logical: use discrete scale

colorblind

Logical: use colorblind-safe colors

...

Additional arguments to ggplot2 scale function


Summarize CVD Accessibility Across All Palettes

Description

Creates a summary table of CVD accessibility for all palettes, useful for documentation and choosing palettes.

Usage

summarize_cvd_accessibility()

Value

A data frame with palette names and overall CVD metrics

Examples

## Not run: 
summary <- summarize_cvd_accessibility()
print(summary)

# Find best palettes
best <- summary[summary$overall_rating == "Excellent", ]
print(best)

## End(Not run)


Theme inspired by Van Gogh (variants)

Description

Theme inspired by Van Gogh (variants)

Usage

theme_vangogh(
  base_size = 12,
  base_family = "",
  variant = c("classic", "light", "dark", "sketch")
)

Arguments

base_size

numeric base font size

base_family

font family

variant

one of "classic", "light", "dark", "sketch"


Return all Van Gogh palettes as a tidy data frame

Description

Return all Van Gogh palettes as a tidy data frame

Usage

vangogh_colors(
  n = NULL,
  type = "discrete",
  colorblind = FALSE,
  add_metadata = FALSE
)

Arguments

n

Number of colors per palette

type

"discrete" or "continuous"

colorblind

Logical (compatibility)

add_metadata

Logical: compute HCL metadata if colorspace available


CVD Accessibility Scores for Van Gogh Palettes

Description

Pre-computed CVD accessibility scores for all Van Gogh palettes. This data is generated by running check_all_vangogh_cvd() and is included for quick reference without requiring the colorspace package.

Usage

vangogh_cvd_scores

Format

A data frame with CVD accessibility metrics:

palette

Name of the Van Gogh palette

cvd_type

Type of colour vision deficiency

min_distance

Minimum CIELAB distance between colours (higher = more distinguishable)

accessibility

Rating: Poor, Fair, Good, or Excellent

overall_rating

Average accessibility across all CVD types

Details

Distance interpretation:

Examples

## Not run: 
# View CVD scores
data(vangogh_cvd_scores)

# Find most accessible palettes
palette_summary <- aggregate(
  min_distance ~ palette, 
  data = vangogh_cvd_scores, 
  FUN = mean
)
palette_summary[order(-palette_summary$min_distance), ]

# Filter by CVD type
deutan_scores <- vangogh_cvd_scores[
  vangogh_cvd_scores$cvd_type == "Deuteranopia (red-green)", 
]
deutan_scores[order(-deutan_scores$min_distance), ]

## End(Not run)


Export palettes to JSON or CSV

Description

Export palettes to JSON or CSV

Usage

vangogh_export(
  file,
  format = c("json", "csv"),
  n = NULL,
  type = "discrete",
  add_metadata = FALSE
)

Arguments

file

File path including filename

format

"json" or "csv"

n

Number of colors (for continuous palettes)

type

"discrete" or "continuous"

add_metadata

Logical: include HCL metadata if available


Interpolate a Van Gogh palette

Description

Interpolate a Van Gogh palette

Usage

vangogh_interpolate(palette, n)

Arguments

palette

Vector of hex colors

n

Number of colors desired


A Van Gogh color palette generator.

Description

These are some color palettes from a selection of Vincent van Gogh's paintings.

Usage

vangogh_palette(name, n, type = c("discrete", "continuous"))

Arguments

name

Name of desired palette. Choices are: StarryNight, StarryRhone, SelfPortrait, CafeTerrace, Eglise, Irises, SunflowersMunich, SunflowersLondon, Rest ,Bedroom , CafeDeNuit, Chaise, Shoes, Landscape, Cypresses

n

Number of colors desired. All palettes have a standard of 5 colors. If omitted, uses all colors.

type

Either "continuous" or "discrete". Use "continuous" to automatically interpolate between colours. @importFrom graphics rgb rect par image text

Value

A vector of colors.

Examples

vangogh_palette("StarryNight")
vangogh_palette("SelfPortrait")
vangogh_palette("Cypresses")
vangogh_palette("Cypresses", 3)

# If you want a continous paletted based on the colors already found in the preset
# palettes, you can interpolate between existing colours accordingly.
pal <- vangogh_palette(21, name = "StarryRhone", type = "continuous")

Return palette info as a data frame with optional HCL

Description

Return palette info as a data frame with optional HCL

Usage

vangogh_palette_info(colorblind = FALSE, add_metadata = FALSE)

Arguments

colorblind

Logical (compatibility)

add_metadata

Logical: compute HCL hue/chroma/luminance if colorspace is installed


Add CVD Information to Palette Documentation

Description

Helper function to add CVD accessibility information to your existing palette information functions.

Usage

vangogh_palette_info_with_cvd(palette_name)

Arguments

palette_name

Character string specifying the palette name

Value

List with palette info and CVD scores

Examples

## Not run: 
# Get enhanced palette info with CVD data
info <- vangogh_palette_info_with_cvd("StarryNight")
print(info$cvd_accessibility$summary)

## End(Not run)


Complete list of palettes:

Description

Use vangogh_palette to construct palettes of desired length.

Usage

vangogh_palettes

Format

An object of class list of length 15.


Suggest a palette based on number of colors

Description

Suggest a palette based on number of colors

Usage

vangogh_suggest(n = 5, type = "discrete")

Arguments

n

Number of colors needed

type

"discrete" or "continuous"


Visualise a Van Gogh palette with optional colorblind simulation

Description

Visualise a Van Gogh palette with optional colorblind simulation

Usage

viz_palette(
  name,
  show_hex = TRUE,
  colorblind = FALSE,
  type = "discrete",
  n = NULL
)

Arguments

name

Palette name

show_hex

Display hex codes (TRUE/FALSE)

colorblind

Show colorblind simulation (TRUE/FALSE)

type

Either "discrete" or "continuous"

n

Number of colors for continuous palettes