This document defines the official naming convention for color palettes in the evanverse package. Following these standards ensures:
Core Principle: type_name_source
structure with lowercase and underscores.
All palette names follow this structure:
[type]_[name]_[source]
│ │ │
│ │ └─ Optional: Source identifier
│ └───────── Required: Descriptive name
└──────────────── Required: Type prefix
Use 3-letter abbreviations to indicate palette type:
| Prefix | Type | Use Case | Example Scenario |
|---|---|---|---|
seq_ |
Sequential | Continuous values, one direction | Heatmaps, gene expression levels |
div_ |
Diverging | Values with meaningful midpoint | Fold change, up/down regulation |
qual_ |
Qualitative | Categorical data, no inherent order | Cell types, sample groups |
Examples:
Why required?
get_palette()list_palettes() intuitiveDescribes the palette’s visual characteristics or intended use:
Naming strategies:
# By color characteristics
qual_vivid # Bright, saturated colors
seq_muted # Soft, low-saturation colors
div_warm # Warm color tones
# By color description
div_redblue # Red to blue gradient
seq_sunset # Sunset-inspired colors
qual_earthy # Earth tone palette
# By application domain
qual_pbmc # PBMC (peripheral blood) data
seq_heatmap # Optimized for heatmaps
# By journal/standard
qual_nejm # New England Journal of Medicine style
qual_lancet # The Lancet journal styleGuidelines:
Only use for adapted palettes from other packages or standards:
| Suffix | Source | Usage |
|---|---|---|
_g |
ggsci | Adapted from ggsci package |
_rb |
RColorBrewer | Adapted from RColorBrewer |
_v |
viridis | Adapted from viridis package |
_sc |
single-cell | Single-cell data specific |
_bio |
bioinformatics | Bioinformatics standard |
Examples:
qual_nejm_g # NEJM palette from ggsci
qual_set1_rb # Set1 from RColorBrewer
seq_viridis_v # Viridis palette
qual_pbmc_sc # PBMC-specific paletteImportant: Custom palettes should NOT have source suffixes.
_, not
camelCase or dotsseq_, div_, or qual_# Clear and concise
qual_vivid # Type + descriptive characteristic
div_redblue # Intuitive color pair
seq_sunset # Evocative name
# Proper source attribution
qual_nejm_g # Journal style from ggsci
qual_set1_rb # RColorBrewer Set1
qual_pbmc_sc # Single-cell specific
# Domain-specific
seq_heatmap # Application-focused
qual_cosmic_g # Theme-based (Cosmic)library(evanverse)
# Type is inferred from prefix
get_palette("seq_sunset") # Automatically knows type = "sequential"
get_palette("div_redblue") # Automatically knows type = "diverging"
get_palette("qual_vivid") # Automatically knows type = "qualitative"
# Can still specify type explicitly
get_palette("seq_sunset", type = "sequential")
# Wrong type will error with helpful message
get_palette("seq_sunset", type = "diverging")
#> Error: Palette 'seq_sunset' is sequential, not diverginglibrary(ggplot2)
# Sequential - continuous values
ggplot(data, aes(x, y, fill = expression)) +
geom_tile() +
scale_fill_gradientn(colors = get_palette("seq_sunset"))
# Diverging - fold change
ggplot(data, aes(x, y, color = log2FC)) +
geom_point() +
scale_color_gradientn(colors = get_palette("div_redblue"))
# Qualitative - categories
ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) +
geom_point() +
scale_color_manual(values = get_palette("qual_vivid"))Checklist:
# ✅ Use clear, descriptive names
seq_sunset # Immediately understandable
qual_vivid # Describes the style
div_fireice # Evocative metaphor
# ✅ Keep it short
qual_ocean # Concise
seq_warm # Direct
# ✅ Credit sources
qual_nejm_g # Acknowledges ggsci
qual_set1_rb # Acknowledges RColorBrewer
# ✅ Be consistent in series
qual_earth_light # Clear series
qual_earth_medium # pattern
qual_earth_dark ## ❌ Don't use mixed case
MyPalette # Use: qual_mypalette
qualVivid # Use: qual_vivid
# ❌ Don't use other separators
my.palette # Use: qual_mypalette
custom-colors # Use: qual_custom
# ❌ Don't include numbers
palette_12 # Use metadata instead
colors_v2 # Use: qual_colors (version in docs)
# ❌ Don't omit type
beautiful # Use: qual_beautiful
sunset # Use: seq_sunset
# ❌ Don't be vague
nice_colors # Too generic
palette1 # Not descriptive
good_palette # MeaninglessFor related palettes:
# ✅ GOOD - Consistent pattern
seq_warm_light
seq_warm_medium
seq_warm_dark
# Or with explicit color counts
qual_earth_3 # 3-color version
qual_earth_6 # 6-color version
qual_earth_12 # 12-color version
# ❌ BAD - Inconsistent
seq_warm_light
seq_warm # Missing variant identifier
warm_dark # Missing type prefix
seq_warm2 # Number without underscoreseq_ → Sequential (one-direction gradients)
div_ → Diverging (two-direction from center)
qual_ → Qualitative (discrete categories)
_g → ggsci package
_rb → RColorBrewer package
_v → viridis package
_sc → single-cell specific
_bio → bioinformatics standard
□ Starts with seq_, div_, or qual_
□ All lowercase letters
□ Uses underscores for separation
□ No numbers in the name
□ Descriptive and intuitive
□ Source suffix only if adapted
□ Unique within its type
type_name_sourcestructure All lowercase + underscores only
?evanversevignette("get-started", package = "evanverse")Document Version: 1.0 Last Updated: 2026-02-11 Status: Official Standard