ggCheysson 1.1.0
CRAN release: 2026-10-01
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, so
reverse = 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 separatescale_*_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 aspattern_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 thecheysson_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 likescale_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, setfig.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 omittedx1/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 thetheme(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.
ggCheysson 1.0.1
CRAN release: 2026-09-26
Fixed undersized axis and legend titles in
theme_cheysson()(inherited bytheme_cheysson_minimal()):CheyssonSansCapsrenders visibly smaller than other package fonts at the same nominal size, so title text is now scaled up to matchBumped
roxygen2to 8.1.0 (Config/roxygen2/version)Removed unnecessary
\dontrun{}/\donttest{}wrapping from examples that run cleanly (show_palette(),show_palettes(), thescale_*_cheysson()family); kept\donttest{}only where custom-font grid text rendering can crash on some devicesAdded R-universe badge and installation instructions to README
Hardened
cheysson_fonts_available(),cheysson_pal(), andcheysson_pattern()against non-length-1 arguments (method,n) that could otherwise trigger opaque errors
ggCheysson 1.0.0
- Initial version, implementing Cheysson color palettes, patterns and fonts
- Fixed problem with fonts, requiring
showtext::showtext_auto() - Added Getting started vignette
- Added Guerry maps vignette
- Added
show_palette()functions - Fixed problems from the initial CRAN submission:
-
@returntags for all functions -
list_cheysson_fonts()function converted tocheysson_fontsdata object -
\dontrun{}examples unwrapped, or changed to\donttest{}if they depend on system features
-
