Repository navigation
Accepted on CRAN 2026-10-01: https://CRAN.R-project.org/package=ggCheysson. This update fixes
the 1.0.1 check ERROR on Intel macOS, corrects and renames palettes (see Breaking changes), and
adds the experimental scale_cheysson().
ggCheysson 1.1.0
Breaking changes
-
Fixed a palette-naming collision bug. Palette names were built from
Album + Qty(e.g."1880_07"), butQtyis not a unique plate identifier - it's a
colors/pattern-element count that happened to repeat across genuinely different plates. 4 such
collisions silently overwrote 5 of the original 25 palettes during data extraction. Names are
now built from the real, unique plate identifier (RumseyListNo's decimal suffix) instead:
19 of the 20 previously-shipped palettes have a new name, and all 5 previously-missing palettes
are now included -cheysson_palettes/cheysson_patternsnow have 25 palettes (was 20),
with 134 pattern specifications (was 83). See the newcheysson_labelsdataset (below) to map
an old name to its new one. -
Migration aids for the rename: an old (1.0.1) palette name that no longer exists now errors
with the palette's new name, e.g."1883_06"->"1883_30", instead of just "not found".
Watch out for"1880_07": it is still a valid name, but now refers to a different
palette (grouped, 1880 plate 7). The palette called"1880_07"in 1.0.1 is now"1880_21".
Using"1880_07"gives a once-per-session message saying so. ("1906_06"is the only old name
that still means the same palette.) -
Palette order is now consistent: sequential palettes are stored from low to high (light to
dark) and diverging palettes end to end, soreverse = TRUEmeans the same for every palette.
Previously palettes kept RJ Andrews' swatch order, so1891_19,1891_25and1900_28ran
dark to light, and1883_31put its hatched patterns at the extremes; these are now
reordered. Category and grouped palettes are unchanged. -
When a sequential or diverging palette has more elements than needed,
cheysson_pal(n = ),
cheysson_pattern(n = )and all thescale_*_cheysson()scales now pick elements spread
over the whole palette, keeping both ends, instead of the firstn- which could drop one
end of a diverging palette entirely (e.g.1883_21with 5 classes).
New features
-
New (experimental)
scale_cheysson()applies a whole color-and-pattern palette - fill, hatch
type, line colors and angle - with one+, in place of four or five separate
scale_*_cheysson()calls;aes_cheysson(x)maps a variable to all of those aesthetics.
See the new vignette "Combining Colors and Patterns". The individual scales remain. -
Two-color crosshatches: the crosshatches in
1883_30and1886_17draw their two sets of
lines in different colors (red and blue; orange and blue-grey). These are now stored as
pattern_fill2, returned bycheysson_pattern_params(param = "pattern_fill2"), and applied by
the newscale_pattern_fill2_cheysson(); map ggpattern'spattern_fill2aesthetic to use them. -
Added
cheysson_labels, a new dataset mapping every palette's current name to its previous
(pre-fix) name, RJ Andrews' original Advent-calendar label, Tom Shanley's Observable notebook
ID, and the underlying David Rumsey catalog number - useful for looking up a palette by
whichever naming scheme you encountered it in. -
Added
cheysson_name(), a lookup function that translates a palette label from any of the
cheysson_labelsnaming schemes (Andrews' label, Shanley's ID, a Rumsey catalog number, the
old pre-fix name, or an advent day) into the current palette name, for direct use in calls like
scale_color_cheysson(cheysson_name("Dec.01-1883.21")). When a label is ambiguous (only
possible via the old naming scheme, which had 4 real collisions), it warns and lists every
match; passadvent_dayto disambiguate without a warning, or to assert a specific palette.
Bug fixes
-
Vignettes now render figures with
ragg. This fixes a segfault on CRAN's Intel macOS check
machines, where the Quartzpng()device crashes drawing ggpattern's masks. Also, set
fig.showtext = TRUE, so showtext text is drawn at the device's real dpi and figures look the
same in the package vignettes and on the pkgdown site. -
Missing values in a mapped pattern aesthetic no longer make ggpattern fail: the pattern
scales now give missing data no hatching (pattern = "none") by default. -
The 1883 category palette of Advent day 22 is named
1883_30: the source data's Rumsey
number for it (12512.013) was a typo for12514.030, the 1883 album's plate 30, as checked
against the original plate.cheysson_labelskeeps RJ Andrews' and Tom Shanley's labels for
it (Dec.22-1881.13,category12512013), which were built from the bad number. -
Fixed 15 missing pattern elements across 6 palettes (
1882_04,1883_07,1886_04,
1886_07,1887_06,1900_06, in their old names): an SVG-parsing bug silently dropped
hatch-line patterns whose coordinates relied on SVG's implicit default of 0 for an omitted
x1/y1/x2/y2attribute. -
Fixed two
scale_pattern_*_cheysson()bugs:scale_pattern_type_cheysson()targeted the
wrong ggpattern aesthetic (pattern_typeinstead ofpattern) and so never actually varied
the rendered pattern shape by category;scale_pattern_fill_cheysson()read the wrong
parameter (fillinstead ofpattern_fill) and always returned"transparent"regardless of
palette. -
Fixed
theme_cheysson()'s/theme_cheysson_map()'splot.title(set inCheyssonTitle)
rendering smaller than intended, the same underlying issue as the 1.0.1 axis/legend-title fix
below but previously missed for the plot title itself. The correction is now generalized
(cheysson_font_size_adjust()) to all four Cheysson display fonts instead of hardcoded to one.
Other changes
-
The help topic for
scale_color_cheysson()/scale_fill_cheysson()is now
?scale_color_cheysson(the namescale_cheyssonbelongs to the new function). -
Added real (rendered) pattern examples to the README's Pattern Support section, which
previously had none. -
theme_cheysson_map()text sizing redesigned:plot.title,plot.subtitle,
legend.title, andlegend.textnow scale frombase_sizeusing a deliberate poster-style
hierarchy (a much larger title relative to the rest, in the spirit of Guerry's own maps) instead
of the modest ratiostheme_cheysson()uses;plot.captionis now styled too (previously
unstyled and tiny).base_sizealone now controls this - no need for the
theme(plot.title = element_text(size = ...))overrides theguerry-mapsvignette previously
needed on every map. Sizes are calibrated at true scale (a ~40-character title just fits an
8in-wide figure), and titles are now centered on the whole plot rather than the panel, so a
side legend no longer pushes a long title off the left edge.