ggthemes (development version)
BREAKING CHANGE:
theme_excel_new()now matches the chart chrome Excel actually draws, decoded from the chart XML that Excel writes. Major gridlines are#D9D9D9rather than#BFBFBF; axis lines are drawn in#BFBFBF, where previously there were none; and axis titles are one point larger than axis labels, as in Excel. Existing plots will change appearance.theme_excel_new()documents that Excel’s font has been Aptos since 2023.base_familystill defaults to"sans", since Aptos is rarely installed outside Office; passbase_family = "Aptos Narrow"for a closer match.Add the current Microsoft Office theme, which Microsoft made the default in 2023, as the
"Office"Excel theme:#156082,#E97132,#196B24,#0F9ED5,#A02B93,#4EA72E.ggthemes_data$excel$themesnow has 51 themes.BREAKING CHANGE:
excel_new_pal(),scale_colour_excel_new()andscale_fill_excel_new()now default totheme = "Office"instead of"Office Theme", so they again match a default chart in current Excel. Plots that relied on the default will change appearance. Passtheme = "Office 2013"to keep the previous colours.The Excel themes
"Office Theme"and"Office 2007-2010"have been renamed"Office 2013"and"Office 2007", following Microsoft’s own renaming of the built-in themes. The old names still work and select the same colours as before.Add
bank_slopes_multiscale()andbank_plot_multiscale(), implementing multi-scale banking to 45 degrees (Heer and Agrawala 2006, section 3). Single-scale banking considers all of the data at once, so it accentuates local features and can obscure larger-scale trends. Multi-scale banking uses spectral analysis to identify the frequency scales that carry real energy, low-pass filters the data to each scale, and banks the resulting trend curve, returning one aspect ratio per scale.bank_slopes_multiscale()returns a tibble of frequencies and ratios;bank_plot_multiscale()returns oneggplotper scale, reproducing the small-multiples display used in the paper. Onsunspot.yearthe implementation selects the same frequency scales the paper reports.stata_shape_pal()now fails with a message naming the offending symbolstyles when Stata’s shape data does not contain the ten the palette selects. It previously looked them up with a barematch(), so a renamed or missingsymbolstyleproduced an all-NArow that was silently dropped as “no font-independent equivalent”, leavingmax_nquietly below the documented ten. The list of ten now lives in one place anddata-raw/build.Rsources it, so the build’s duplicate-pch check cannot run over a stale copy.BREAKING CHANGE:
stata_shape_pal(),calc_shape_pal(),tableau_shape_pal()andcleveland_shape_pal()now return base pch codes by default instead of pch codes derived from Unicode glyphs. R draws a negative pch by asking the device font for that codepoint, so these palettes rendered as blank boxes in a font without coverage — R’s defaultsanscovers one of the eight codepoints they relied on — and aborted outright on basepdf()/postscript(). Passunicode = TRUEto restore the previous values.scale_shape_stata(),scale_shape_calc(),scale_shape_tableau()andscale_shape_cleveland()gain the same argument.BREAKING CHANGE:
max_nis reduced on the default branch for the palettes whose source symbols have no font-independent equivalent:calc13 to 7,tableau_shape_pal("filled")10 to 6,tableau_shape_pal("default")10 to 8,cleveland_shape_pal(overlap = FALSE)5 to 3 andtableau_shape_pal("proportions")5 to 2. Those shapes are dropped rather than approximated by a different shape.stata_shape_pal()andfew_shape_pal()are unaffected — their symbol sets map exactly.BREAKING CHANGE: the
pchcolumn of the shape tables inggthemes_datanow holds the font-independent base pch,NAwhere there is none. The previous Unicode-derived values move to a newpch_unicodecolumn, and a newshapecolumn carries the canonical shape name both are derived from.BREAKING CHANGE:
tremmel_shape_pal()returned symbol sets that did not match Tremmel (1995).n = 2now returns a solid circle and a plus sign (was two circles),overlap = TRUEreturns an empty circle and a plus sign (was a square and a plus sign), andalt = TRUEreturns a solid circle, plus sign and empty triangle (was identical toalt = FALSE, making the argument a no-op).Fix
scale_shape_tremmel()defaulting toalt = TRUEwhiletremmel_shape_pal()defaulted toalt = FALSE, so a palette and its own scale disagreed atn = 3. Both now default toFALSE, the variant Tremmel’s Experiment 1 measured.Fix
cleveland_shape_pal(overlap = TRUE)drawing aWwhere anSwas intended; the stored row paired the nameLATIN CAPITAL LETTER Swith pch 87.Fix mislabelled and corrupted shape data: LibreOffice’s
BLACK DOWN-POINTING CHARACTER(nowTRIANGLE), Google Docs’ star namedMULTIPLICATION X, Excel’s em dash declared asU+2013, and Tableau’sCLOUD WITH RAIN, stored as a mojibake sequence rather thanU+1F327.The shape tables are now validated as they are built: a shape name outside the vocabulary, a
characterthat disagrees with its ownunicode, or two shapes in one palette sharing a pch all fail the build, and the same checks run as tests against the built data.warn_unicode_pch()’s locale guess is joined by a real font-coverage check usingsystemfonts::glyph_info()whensystemfontsis installed, naming the glyphs the device font cannot draw.systemfontsis used inSuggests. The locale and coverage checks are independent failure modes and both run: a UTF-8 session can still meet a font with no glyph, and a font with full coverage still fails withmbcsToSbcson a non-UTF-8 session. Note that R exposes no way to read back a device’sfamily=, so the probe measures the default font and the warning names the font it actually measured.Discrete colour palettes now reject a negative
nwith an error naming the argument and the palette that was called. Palettes built onscales::manual_pal()— includingcalc_pal(),canva_pal(),colorblind_pal(),excel_pal(),excel_new_pal(),fivethirtyeight_pal(),gdocs_pal(),hc_pal(),stata_pal()andwsj_pal()— previously failed with R’s internalargument must be coercible to non-negative integerfromseq_len(). This raises the minimum version of scales to 1.4.0, which is wherescales::new_discrete_palette()was introduced.bank_slopes()andbank_plot()report an invalidmethod, andtableau_shape_pal()an invalidpalette, with a message naming the argument and the value supplied instead ofmatch.arg()’s'arg' should be one of .... Misspellings now get a “Did you mean” hint.Deprecate
ptol_pal(),scale_colour_ptol(),scale_color_ptol()andscale_fill_ptol(). Use the khroma package instead, which tracks Paul Tol’s colour schemes as he revises them. The ggthemes palette is the original 12-colour qualitative scheme from Tol’s 2012 technical note and has not followed the revisions on his current site, https://sronpersonalpages.nl/~pault/; the closest successor iskhroma::colour("muted"). The functions still work, but warn.BREAKING CHANGE: The Tableau palette
"Red-Blue-Brown"has been renamed to"Blue-Red-Brown", matching both the name Tableau uses and the palette’s actual colour order (blue, red, brown). The old name still works but warns.BREAKING CHANGE: The Tableau palette
"Classic Area-Brown"has been renamed to"Classic Area Brown", for consistency with its siblings"Classic Area Red"and"Classic Area Green". The old name still works but warns.Fix two corrupted colours in the
"Gray Warm"ordered-sequential Tableau palette. Position 7 was#b047a4(a magenta, in a warm-grey ramp) and is now#b0a8a4; position 18 was#665c51, which broke the ramp’s monotonic blue channel, and is now#665c5a. Plots usingscale_colour_gradient_tableau("Gray Warm")will change appearance.Fix a duplicated colour (
#fa9d4f) in the"Red-Gold"ordered-sequential Tableau palette, which gave it 21 colours where every other 20-step Tableau sequential palette has 20. Plots using"Red-Gold"will change appearance.Remove
data-raw/theme-data/tableau-new.yml, an unused duplicate oftableau.yml.The test suite no longer requires suggested packages to be installed.
expect_hexcolor()used stringr and glue on every palette test, and stringr had moved fromImportstoSuggests; it now uses base equivalents. The tests that genuinely need withr or farver skip when those are absent instead of erroring.geom_rangeframe()now errors on asidesvalue that names no side, rather than silently drawing nothing.sidespacks side letters into one string, so a typo such assides = "xy"previously produced an empty layer with no message. Valid values are strings made up of"t","r","b"and"l".Fix the
?extended_range_breakshelp page, which described a functionscales_extended_range_breaks()that does not exist and attributed the wrong return value to each function.extended_range_breaks_()returns the break values;extended_range_breaks()returns a breaks function. The page now also warns that ggplot2 passes abreaksfunction the expanded scale limits, sobreaks = extended_range_breaks()labels the panel edges rather than the data extremes; apply the function to the data to label the extremes.Fix
theme_economist_white()failing on installations without dplyr. The internalget_colors()helper calleddplyr::filter(), but dplyr is a suggested package, not an import; it now uses base subsetting. The test suite no longer uses dplyr either, soR CMD checkpasses with only the hard dependencies installed.Fix the
@familytags that split related help pages apart. Word-order and singular/plural inconsistencies (stata colour,solarized colour,shape stata,shape tableau) each put one page in a family of its own, so it linked to nothing.?extended_range_breakshad no family at all and was unreachable fromtheme_tufte(),geom_rangeframe()andgeom_tufteboxplot(), which it is meant to be used with; those four now cross-reference each other.Add vdiffr visual regression baselines for every exported theme, and swatch baselines plus property assertions (valid hex, no duplicate colours, stable lengths, monotone lightness, no out-of-family colour, monotone grey ramps) for the Tableau palette families. These are development-only tests and do not run on CRAN;
vdiffr (>= 1.0.6)andfarverare now used inSuggests(#219).Add support for Stata’s
stscheme family, which has been Stata’s factory default since Stata 18.stata_pal()andscale_colour_stata()gain the"stcolor"scheme (thestc1–stc15colours), andtheme_stata()gains the"stcolor","stcolor_alt","stmono1","stmono2"and"stsj"schemes.stgcolorandstgcolor_altare not included: they differ fromstcoloronly in physical graph dimensions, which a ggplot2 theme does not carry.The 19 named colours Stata 18 added (
stc1–stc15plus thestblue,stred,stgreenandstyellowaliases) are now inggthemes_data$stata$colors$names.Omitting
schemeinstata_pal(),scale_colour_stata(),scale_fill_stata()andtheme_stata()is now soft-deprecated. It still resolves to"s2color", but the default will change to"stcolor"in ggthemes 8.0.0, following Stata. Passschemeexplicitly to keep the current appearance.BEHAVIOUR CHANGE:
stata_pal("mono")returned the wrong colours at positions 6 and 12 (gs14andgs15instead ofgs12andgs5). It now matches Stata’ss1mono/s2monoexactly, including the fact that Stata repeatsgs12andgs5at positions 14 and 15. Plots using"mono"with six or more levels will change.Fix
stata_pal("economist"), which returnedNAas its first colour because the scheme referred to a non-existent colourdkblue. It is nowedkblue, matching Stata’sscheme-economist.scheme.Fix
attr(stata_pal(scheme), "max_n"), which reported2rather than15because it measured the columns of the palette table instead of its rows.Add Apple Numbers support:
numbers_pal(),scale_colour_numbers(),scale_color_numbers(),scale_fill_numbers(), andtheme_numbers(). All 12 Numbers chart palettes are available by their Numbers names ("Classic", the default, through"Spectrum"), each providing six series colors.theme_numbers()follows the chart style defaults that ship inside Numbers: no panel fill, gridlines in the value direction only, a bottom chart border, and no tick marks.The palettes are generated from Apple Numbers 14.5 by
data-raw/reference/numbers/fetch.shanddata-raw/numbers_palettes.R; seedata-raw/reference/numbers/SOURCES.md. This replacesdata-raw/theme-data/numbers-charts.yml, an unused file added in 2018 that was never wired intodata-raw/build.Rand held iWork-era colors matching no current Numbers palette.Fix two incorrect colours in the Google Docs palette, checked against the series colours a current Google Sheets chart actually renders.
teal 2was#ff994d, a duplicate oforange 2, and is now#7ed1d7;teal 3was#c9e4e7and is now#b5e5e8. This changes the output ofgdocs_pal(),scale_colour_gdocs(), andscale_fill_gdocs()for more than 11 colours. The other 22 colours were already correct.theme_gdocs()now matches the text colours Google Sheets uses. Sheets applies a graded hierarchy rather than one grey: axis tick labels are black, legend labels#1a1a1a, and axis titles and the x-axis line#333333. The chart title (#757575) and gridlines (#cccccc) are unchanged.BREAKING CHANGE:
hc_pal("default")now returns the palette Highcharts has used by default since v11.0.0 (#2caffe,#544fc5,#00e272, …). It previously returned the palette used before v11 (#7cb5ec,#434348, …), which Highcharts replaced in April 2023. Plots usingscale_colour_hc()orscale_fill_hc()without an explicitpalettewill change appearance. The old palette is still available ashc_pal("classic").BEHAVIOUR CHANGE: two colours in that older palette were wrong, and are corrected in
"classic". Position 8 was#8085e8(a near-duplicate of#8085e9at position 5, differing by one hex digit) and is now#2b908f; position 9 was#8d4653and is now#f45b5b. The old values match Highcharts 4.x; every Highcharts release from v5.0.0 to v10.x shipped the corrected pair.hc_pal()andscale_colour_hc()/scale_fill_hc()gain the palettes bundled with Highcharts 13:"default_dark"(the dark-mode form of the default, which Highcharts selects via CSSlight-dark()),"high_contrast_light"and"high_contrast_dark"(Highcharts’ own palette, tested for colour blindness and tailored to 3:1 contrast),"grid_light","sand_signika","avocado"and"sunset". Note that"avocado"and"sunset"have only four colours.hc_pal()now reports amax_nattribute and warns when asked for more colours than the palette holds, matching the other ggthemes palettes.theme_hc()‘s horizontal grid lines are now#e6e6e6, matching Highcharts’--highcharts-neutral-color-10, rather than#D8D8D8.theme_hc()gains the"default_dark","grid_light"and"sand_signika"styles."grid_light"is the one Highcharts theme that draws vertical grid lines. The"high_contrast","avocado"and"sunset"themes are not included as styles: upstream they change nothing but the series colours, so they are available throughhc_pal()and are meant to be combined withtheme_hc("default")ortheme_hc("default_dark").BEHAVIOUR CHANGE:
theme_hc("darkunica")drew all text in#A0A0A3and titles in#FFFFFF. Highcharts uses#E0E0E3for axis labels, titles and axis titles in this theme, so text is now#E0E0E3throughout. The grid colour#707073was already correct and is unchanged.Fix unreadable axis labels in
theme_hc("darkunica").theme_hc()is a partial theme, and it never setaxis.text, so the axis labels kepttheme_grey()’s"grey30"and were drawn in dark grey on the near-black background. They now use the same colour as the rest of the theme’s text.Remove
data-raw/theme-data/highcharts.yml, an unused duplicate ofhc.ymlthat still held the palettes from before v11.theme_hc()’s examples now passstylerather than the deprecatedbgcolor, and the last example usesscale_colour_hc()instead ofscale_fill_hc(), which had no effect on its colour-mapped lines.BREAKING CHANGE:
theme_economist()andeconomist_pal()now follow the chart design The Economist introduced in 2017 and still publishes, replacing the pre-2017 style ggthemes had shipped since 2013. Existing plots will change appearance. The new look draws a white panel on a pale#e9edf0ground with light horizontal gridlines, a black x-axis baseline with tick marks below it (they previously pointed inward), and no y-axis rule or ticks.economist_pal()returns the nine current chart colors (#006ba2,#3ebcd2,#379a8b,#ebb434,#b4ba39,#9a607f,#d1b07c,#758d99,#db444b) in place of the old blues and greens. Colors and geometry are transcribed from The Economist visual styleguide v1.2 (4 May 2017); seedata-raw/reference/economist/.ggthemes_data$economistis restructured to match:main(the nine series colors plus “Econ red”),scales(the styleguide’s “equal lightness colour scales”, six ordered steps for each of the nine hues),bg, andtext. The formerfgandbgentries are gone; their values are recorded in a comment indata-raw/theme-data/economist.yml.Add
economist_seq_pal()andeconomist_gradient_pal(), plusscale_colour_economist_c()/scale_fill_economist_c()for continuous data andscale_colour_economist_ordinal()/scale_fill_economist_ordinal()for ordered factors, built from the equal-lightness scales.Deprecate
theme_economist_white()(lifecycle::deprecate_warn()); the current design already draws a white panel, so it no longer differs fromtheme_economist(), to which it now forwards.Deprecate the
dkpanelargument oftheme_economist()and thefillargument ofeconomist_pal(). Both were features of the pre-2017 design and are now ignored.Fix:
theme_economist()previously looked up a background colour named"ebg", whicheconomist.ymldid not define, sorectandstrip.backgroundsilently received a fill ofNA. The rewritten theme sets both explicitly.
ggthemes 6.0.0
-
circlefill_shape_pal()andscale_shape_circlefill(), soft-deprecated since ggthemes 5.0.0, now always warn on use (lifecycle::deprecate_warn()) instead of only when called directly by the user - BREAKING CHANGE: Bump minimum supported R version to 4.1.0, and use the base pipe (
|>) instead of the magrittr pipe (%>%) indata-raw/and examples, to match the current Tidyverse Style Guide (lintr’spipe_consistency_linteris now a default linter requiring|>, which was failing CI) - chore: Modernize GitHub Actions workflows: bump
actions/checkout,actions/upload-artifact, and the pkgdown deploy action to their current pinned versions; add explicitpermissions:blocks; migratetest-coverage.yamlfromcovr::codecov()tocovr::package_coverage()+ the officialcodecov/codecov-action - Fix stale
branch/masterCodecov badge in README (now points atmain) - Add
"ao"(Average Absolute Orientation) and"was"(Weighted Average Absolute Slope) methods tobank_slopes(), following Heer and Agrawala (2006). Also declarestatsas an explicitImportsdependency, sincebank_slopes()callsstats::median()/stats::uniroot()/stats::weighted.mean(), and fix thebank_slopes()example so each method’s ratio is actually applied viacoord_fixed()instead of just computed and discarded - Add
bank_plot(), a wrapper aroundbank_slopes()that extractsx/ydirectly from an already-builtggplot(respecting stats, position adjustments, groups, and facets) and returns the plot withcoord_fixed()applied, so banking a plot no longer requires manually reconstructing its plotted vectors - Bugfix:
bank_slopes(method = "ao")now returnsNaN(matching the other methods) instead of erroring when there is no vertical variation (e.g. a flat line) or too few points to compute a slope - Bugfix:
bank_plot()now rejects a non-positivelayerwith the intendedcli_abort()message instead of falling through to a raw subsetting error - Bugfix: Fix
excel_new_pal()example so it actually generates output (#199) - Bugfix:
extended_range_breaks_()now respects thenargument instead of silently ignoring it (#139) - Add
blackargument tocolorblind_pal(),scale_colour_colourblind(),scale_color_colorblind(),scale_fill_colorblind(), andscale_fill_colourblind(); setblack = FALSEto drop black from the colorblind-safe palette (#178) - Add
ink,paper, andaccentarguments totheme_foundation(), matching ggplot2’s owntheme_gray(ink=, paper=, accent=). Branded themes (e.g.theme_economist(),theme_excel()) intentionally replicate a fixed published style and do not expose these (#183) - Bugfix:
theme_economist()/theme_economist_white()andtheme_excel()now respect thebase_familyandbase_sizearguments (#135) - Bugfix:
theme_excel_new()now scalesaxis.text,strip.text,legend.text, andplot.titlewithbase_size, and no longer blanks out axis titles by default (#176) - Bugfix:
geom_rangeframe()no longer silently drops the entire range line for an aesthetic when the data contains missing values;na.rmnow behaves as documented (#177) - Clarify in
geom_rangeframe()docs (and add an example) thatsides = "trbl"already draws correctly-positioned frames on panels with a secondary axis, sinceggplot2::sec_axis()only relabels the existing scale rather than introducing a separate data range (#179) - Add
midpointargument toscale_colour_gradient2_tableau(),scale_fill_gradient2_tableau(), andscale_color_gradient2_tableau()to control which data value maps to the middle color of the diverging palette (#136) -
cleveland_shape_pal(overlap = FALSE)andtableau_shape_pal()now warn with an actionable message when their Unicode-derived pch codes are likely to fail to render (non-UTF-8 locale), instead of only surfacing a cryptic low-level “conversion failure … in ‘mbcsToSbcs’” error at draw time (#164) - chore: Replace base
stop()/warning()withcli::cli_abort()/cli::cli_warn()throughout, matching current tidyverse convention (used by ggplot2/dplyr). Error/warning text is largely the same information, reformatted for clarity; a few tests were updated to match. Addcliandrlangto Imports. - chore: Use
rlang::check_installed()instead of a manualrequireNamespace()+stop()check for thequantregdependency instat_fivenumber()’s weighted case, which prompts an interactive install instead of just erroring. The genuinely optionalpander-availability checks intheme_pander()/palette_pander()are left asrequireNamespace(), sincecheck_installed()is for hard requirements. - Bugfix: Fix 301 error in link (#196)
ggthemes 5.2.0
CRAN release: 2025-11-30
- Renamed
scale_colour_colorblind()toscale_colour_colourblind()(#180). - Updated
theme_solarizedto fixkey.backgroundcolor. - Bugfix: Fix documentation cross-links (#186)
- Bugfix: Removed usage of deprecated ggplot functions
ggthemes 5.0.0
CRAN release: 2023-11-21
- Deprecate
circlefill_shape_palandscale_shape_circlefill - Bugfix: Fix failing CRAN tests. Shape scales and palettes could fail if glyphs unavailable in graphics devices.
- Bugfix: Add alias to
ggthemes-package - Add
quantregto suggested packages
ggthemes 4.2.1
- Conditionally use the vdiffr package in tests so it complies with suggested package policy (#124)
- Fix error in
expect_equalfunctions (#123) - Fix errors in
geom_tufteboxplotandstat_fivenumberdue to missing imported objects from ggplot2 (#117, #121) - Fix text labels in top axis in
theme_economist(#115) - Update documentation on
geom_rangeframe; it should be used withcoord_cartesian(clip="off"). (#120)
ggthemes 4.2.0
CRAN release: 2019-05-13
- Add
theme_clean()(Thanks @konradzdeb, #105) - Add
directionargument toscale_color_tableau()andscale_fill_tableau()(Thanks @vadimus202, #112)
ggthemes 4.1.1
CRAN release: 2019-04-09
- Fix bugs in
geom_rangeframeandgeom_tufteboxplotcaused by failing to importalpha. (Thanks @flying-sheep, #110)
ggthemes 4.1.0
CRAN release: 2019-02-19
- Add
typeargument toscale_color_tableauso that sequential and diverging palettes can be used in discrete scales. (Thanks @onesandzeroes, #108) - Fix colors in “Purple” and “Blue-Teal” palettes in
tableau_color_pal(). (Thanks @leonawicz, #109)
ggthemes 4.0.1
CRAN release: 2018-08-24
- Fix bugs in
tableau_color_pal(). Wrong colors in “Tableau 20” theme (Thanks @friskin, #95), and incorrect order of classic color palettes (Thanks @luca-scr, #96). - Fix fatal bug in
theme_solarized()andsolarized_rebase(). (Thanks @mdodrill-usgs, #97)
ggthemes 4.0.0
CRAN release: 2018-07-19
Added palettes and based on current versions of Excel:
excel_pal_new(),scale_colour_excel_new(), andscale_fill_excel_new(). Excel ’97 based scales keep the same names.Added
theme_excel_new()which is based on the chart defaults of current versions of Excel.Added Tableau 10 palettes and renamed old palettes in
tableau_color_pal(),scale_color_tableau(),scale_fill_tableau(), and others. The continuous sequential and diverging palettes are improved by including more intermediate steps.Updated
theme_gdocs()to current look.Updated
scale_color_gdocs()andfill_color_gdocs()to current color.Added
scale_shapes_few()andfew_shape_pal()with a shape scale and palette from Stephen Few’s “Show Me the Numbers”.Removed
stataargument fromscale_*_economist()andtheme_economist().Changed the format of the
ggthemes_dataobject.Changed behavior of
few_pal(). Ifn = 1, use gray. Ifn > 1use non-gray colors.Changed
tremmel_shape_scale()to usealt = TRUEby defaultDeprecated
tremmel_shape_scale()argumentn3alt. Use thealtargument instead.Added a pkgdown site.
Removed vignette. Move all examples to man pages.
Bugfix: Fix
theme_few()(#91)Bugfix: Update themes to be consistent with
ggplot>=3.2.0
ggthemes 3.5.0
CRAN release: 2018-05-07
Bugfix: Fix RGB colors in
scale_color_few(),scale_fill_few(), andfew_pal()(#89, @bpbraun)Update documentation to include mentions of the maximum number of values that discrete scales support (#85)
ggthemes 3.4.2
CRAN release: 2018-04-03
- Bugfix: Fix example code in
theme_economist(). Thanks @carlganz #81. - Remove suggests dependencies:
reshape2,plyr,tidyverse
ggthemes 3.4.1
- Bugfix: Resolve duplicate palette names in
canva_palettes(). Thanks @Eluvias (#78)
ggthemes 3.4.0
CRAN release: 2017-02-19
Add color palettes from canva.com:
canva_palettes(),canva_pal(),scale_colour_canva().Use
NEWS.mdinstead ofNEWSUpdate Economist examples to put y-axis on the right side.
ggthemes 3.3.0
CRAN release: 2016-11-24
Update themes to changes in ggplot 2.1.0.9000. Thanks @juliasilge (#71)
tufte_boxplot()usesposition="dodge"by default. Thanks @jgellar (#68)Bugfix: Fix errors in
geom_rangeframe()in new version of ggplot2. Thanks @coulmont (#70)
ggthemes 3.2.0
CRAN release: 2016-07-11
- Bugfix: In function
bank_slopes(), remove methodsao,gor, andlor. These methods were not producing reliable results, and should not produce results much different thanmsoras. If used, they will produce a warning, andmswill be used instead. (#68)
ggthemes 3.1.0
- Add
ptol_pal(),scale_colour_ptol(), andscale_file_ptol()based on Paul Tol’s qualitative color palettes. Thanks @jmlondon. (#65)
ggthemes 3.0.4
- Fix panel.grid.major.y colors for
theme_hc(). Thanks @flying-sheep! (#64)
ggthemes 3.0.1
CRAN release: 2016-01-10
Bugfix: Remove border around legends in
theme_gdocs(). Thanks SandyMuspratt! Pull request #53.Bugfix: Remove border around legends in
theme_calc().Bugfix: Add colour and fill values to
theme_foundation(). This restores its behavior to version 2.2.1. Fixes Issue #56.
ggthemes 3.0.0
CRAN release: 2015-12-20
For
geom_tufteboxplot()andGeomTufteboxplot, optionmedian.typesupports onlylineandpointoptions. Added optionwhisker.typewhich allows for whiskers to be specified by lines or points.Changed default stat for
geom_tufteboxplot()tostat_fivenumber().Added
theme_base()andtheme_par()Removed
scale_(x|y)_tufte(). See issue #49theme_foundation()rewritten. Removeduse_sizesargument.Import rather than depend on
ggplot2Update geoms, scales, and themes to ggplot >= 2.0.0
ggthemes 2.2.1
CRAN release: 2015-07-01
bugfix: fix R CMD check notes due to change in how it handles non-base default packages: https://developer.r-project.org/blosxom.cgi/R-devel/2015/06/29
bugfix: fix bad URLs
ggthemes 2.2.0
- Added
theme_map()from @hrbrmstr
ggthemes 2.1.1
- bugfix: use title case in package title; refer to ggplot2 in title
- bugfix: fix non-escaped URLs in colorblind.R
- bugfix: fix broken URL in few.R
- bugfix: remove non-ascii characters in shapes.R
- bugfix: use
requireNamespace()instead ofrequire()
ggthemes 2.1.0
CRAN release: 2014-12-18
- New theme and scale based on Highcharts JS:
scale_*_hc(),theme_hc(). Thanks jbkunst!
ggthemes 2.0.0
New options for
geom_tufteboxplot().median.typetakes values “point”, “box”, or “line”. Optionuseboxis no longer supported, and equivalent tomedian.type="box". Thanks weitzner! Issue #13, PR #19.All theme functions have
base_sizeandbase_familyas first two arguments. This affectstheme_economist_white(),theme_excel(),theme_pander(),theme_solid(), andtheme_tufte(). Thanks ptoche! Issue #25.theme_pander(): Optionsffandfsare deprecated; usebase_familyandbase_sizeoptions instead, respectively.
ggthemes 1.9.0
added vignette
added themes / scales based on factory defaults of pander package:
pander_palette(),scale_color_pander(),scale_fill_pander(),theme_pander(). Thanks daroczig.added additional fill and gradient color scales:
scale_fill_fivethirtyeight(),scale_colour_gradient_tableau(),scale_fill_gradient_tableau(),scale_fill_continuous_tableau(),scale_colour_gradient2_tableau(),scale_fill_gradient2_tableau(). Thanks bowerth.
ggthemes 1.8.0
- added themes and color scale from fivethirtyeight.com:
theme_fivethirtyeight(),fivethirtyeight_pal(),scale_color_fivethirtyeight()
ggthemes 1.7.0
CRAN release: 2014-04-22
- added a new breaks algorithm:
scales_extended_range_breaks(),extended_range_breaks() - added scales which implement the breaks algorithm:
scale_x_tufte(),scale_y_tufte() - added new label format:
smart_digits(),smart_digits_format()
ggthemes 1.6.1
- fix bug in
theme_wsj()(issue #17)
ggthemes 1.5.0
- added alternative Solarized theme:
theme_solarized_2() -
theme_solarized(): adjusted the colors - added LibreOffic Calc themes and palettes:
theme_calc(),calc_pal(),scale_fill_calc(),scale_colour_calc(),cacl_shape_pal(),scale_shape_calc() - added Google Docs themes and palettes:
theme_gdocs(),gdocs_pal(),scale_fill_gdocs(),scale_colour_gdocs() - fixed some examples
ggthemes 1.4.0
- fix bug in default palettes of
scale_colour_excel()andscale_fill_excel().
ggthemes 1.3.4
- added Tableau sequential colour palettes:
tableau_seq_gradient_pal(),scale_colour_gradient_tableau(),scale_fill_gradient_tableau(). - added Tableau diverging colour palettes:
tableau_div_gradient_pal(),scale_colour_gradient2_tableau(),scale_fill_gradient2_tableau(). -
tableau_colour_pal(): added palette “cyclical
ggthemes 1.3.1
CRAN release: 2012-12-22
-
bank_slopes()returns y/x aspect ratio to be compatible withcoord_fixed() - improved documentation
ggthemes 1.3.0
- renamed
theme_excel2003()totheme_excel() - replace
scale_fill_excel2003()andscale_fill_excel10()withscale_fill_excel() - replaced
scale_colour_excel2003()andscale_colour_excel10()withscale_colour_excel() - replaced
excel2003_pal()andexcel10_pal()withexcel_pal() - renamed
theme_base()totheme_foundation()
ggthemes 1.2.0
- added colorblind scales:
colorblind_pal(),scale_*_colorblind().
ggthemes 1.1.0
- added Wall Street Journal themes, palettes, scales:
theme_wsj(),wsj_pal(),scale_colour_wsj(), andscale_fill_wsj(). - added function
bank_slopes(): methods for determining the optimal slope ratio. - added
theme-foundation(): a theme designed to be easy to extend into new themes. - added NEWS file
