|
1 | 1 | # ggplot2 (development version)
|
2 | 2 |
|
3 | 3 | * More stability for vctrs-based palettes (@teunbrand, #6117).
|
| 4 | +* Fixed regression in `guide_bins(reverse = TRUE)` (@teunbrand, #6183). |
| 5 | +* New function family for setting parts of a theme. For example, you can now use |
| 6 | + `theme_sub_axis(line, text, ticks, ticks.length, line)` as a substitute for |
| 7 | + `theme(axis.line, axis.text, axis.ticks, axis.ticks.length, axis.line)`. This |
| 8 | + should allow slightly terser and more organised theme declarations |
| 9 | + (@teunbrand, #5301). |
| 10 | +* `scale_{x/y}_discrete(continuous.limits)` is a new argument to control the |
| 11 | + display range of discrete scales (@teunbrand, #4174, #6259). |
| 12 | +* `geom_ribbon()` now appropriately warns about, and removes, missing values |
| 13 | + (@teunbrand, #6243). |
| 14 | +* `guide_*()` can now accept two inside legend theme elements: |
| 15 | + `legend.position.inside` and `legend.justification.inside`, allowing inside |
| 16 | + legends to be placed at different positions. Only inside legends with the same |
| 17 | + position and justification will be merged (@Yunuuuu, #6210). |
| 18 | +* New stat: `stat_manual()` for arbitrary computations (@teunbrand, #3501) |
| 19 | +* Reversal of a dimension, typically 'x' or 'y', is now controlled by the |
| 20 | + `reverse` argument in `coord_cartesian()`, `coord_fixed()`, `coord_radial()` |
| 21 | + and `coord_sf()`. In `coord_radial()`, this replaces the older `direction` |
| 22 | + argument (#4021, @teunbrand). |
| 23 | +* `coord_radial()` displays minor gridlines now (@teunbrand). |
| 24 | +* (internal) `continuous_scale()` and `binned_scale()` sort the `limits` |
| 25 | + argument internally (@teunbrand). |
| 26 | +* Theme margins can have NA-units to inherit from parent elements. The new |
| 27 | + function `margin_part()` has NA-units as default (@teunbrand, #6115) |
| 28 | +* New `margin_auto()` specification for theme margins. |
| 29 | +* New argument `labs(dictionary)` to label based on variable name rather than |
| 30 | + based on aesthetic (@teunbrand, #5178) |
| 31 | +* Fixed bug in out-of-bounds binned breaks (@teunbrand, #6054) |
| 32 | +* Binned guides now accept expressions as labels (@teunbrand, #6005) |
| 33 | +* (internal) `Scale$get_labels()` format expressions as lists. |
| 34 | +* In non-orthogonal coordinate systems (`coord_sf()`, `coord_polar()` and |
| 35 | + `coord_radial()`), using 'AsIs' variables escape transformation when |
| 36 | + both `x` and `y` is an 'AsIs' variable (@teunbrand, #6205). |
| 37 | +* The following methods have been deprecated: `fortify.lm()`, `fortify.glht()`, |
| 38 | + `fortify.confint.glht()`, `fortify.summary.glht()` and `fortify.cld()`. It |
| 39 | + is recommend to use `broom::augment()` and `broom::tidy()` instead |
| 40 | + (@teunbrand, #3816). |
| 41 | +* Custom and raster annotation now respond to scale transformations, and can |
| 42 | + use AsIs variables for relative placement (@teunbrand based on |
| 43 | + @yutannihilation's prior work, #3120) |
| 44 | +* When discrete breaks have names, they'll be used as labels by default |
| 45 | + (@teunbrand, #6147). |
| 46 | +* The helper function `is.waiver()` is now exported to help extensions to work |
| 47 | + with `waiver()` objects (@arcresu, #6173). |
| 48 | +* Date(time) scales now throw appropriate errors when `date_breaks`, |
| 49 | + `date_minor_breaks` or `date_labels` are not strings (@RodDalBen, #5880) |
| 50 | +* `geom_errorbarh()` is deprecated in favour of |
| 51 | + `geom_errorbar(orientation = "y")` (@teunbrand, #5961). |
| 52 | +* `geom_contour()` should be able to recognise a rotated grid of points |
| 53 | + (@teunbrand, #4320) |
| 54 | +* `geom_boxplot()` gains additional arguments to style the colour, linetype and |
| 55 | + linewidths of the box, whiskers, median line and staples (@teunbrand, #5126) |
| 56 | +* `geom_violin()` gains additional arguments to style the colour, linetype and |
| 57 | + linewidths of the quantiles, which replace the now-deprecated `draw_quantiles` |
| 58 | + argument (#5912). |
| 59 | +* (breaking) `geom_violin(quantiles)` now has actual quantiles based on |
| 60 | + the data, rather than inferred quantiles based on the computed density. The |
| 61 | + `quantiles` parameter that replaces `draw_quantiles` now belongs to |
| 62 | + `stat_ydensity()` instead of `geom_violin()` (@teunbrand, #4120). |
| 63 | +* (internal) Using `after_scale()` in the `Geom*$default_aes()` field is now |
| 64 | + evaluated in the context of data (@teunbrand, #6135) |
| 65 | +* Fixed bug where binned scales wouldn't simultaneously accept transformations |
| 66 | + and function-limits (@teunbrand, #6144). |
| 67 | +* Fixed bug where the `ggplot2::`-prefix did not work with `stage()` |
| 68 | + (@teunbrand, #6104). |
| 69 | +* New `get_labs()` function for retrieving completed plot labels |
| 70 | + (@teunbrand, #6008). |
4 | 71 | * Built-in `theme_*()` functions now have `ink` and `paper` arguments to control
|
5 | 72 | foreground and background colours respectively (@teunbrand)
|
6 | 73 | * The `summary()` method for ggplots is now more terse about facets
|
|
181 | 248 | * The ellipsis argument is now checked in `fortify()`, `get_alt_text()`,
|
182 | 249 | `labs()` and several guides (@teunbrand, #3196).
|
183 | 250 | * `stat_summary_bin()` no longer ignores `width` parameter (@teunbrand, #4647).
|
| 251 | +* Added `keep.zeroes` argument to `stat_bin()` (@teunbrand, #3449) |
| 252 | +* (internal) removed barriers for using 2D structures as aesthetics |
| 253 | + (@teunbrand, #4189). |
| 254 | +* `coord_sf()` no longer errors when dealing with empty graticules (@teunbrand, #6052) |
| 255 | +* Added `theme_transparent()` with transparent backgrounds (@topepo). |
| 256 | +* New theme elements `palette.{aes}.discrete` and `palette.{aes}.continuous`. |
| 257 | + Theme palettes replace palettes in scales where `palette = NULL`, which is |
| 258 | + the new default in many scales (@teunbrand, #4696). |
| 259 | +* `guide_axis()` no longer reserves space for blank ticks |
| 260 | + (@teunbrand, #4722, #6069). |
| 261 | +* `geom_abline()` clips to the panel range in the vertical direction too |
| 262 | + (@teunbrand, #6086). |
| 263 | +* Added `panel.widths` and `panel.heights` to `theme()` (#5338, @teunbrand). |
| 264 | +* Standardised the calculation of `width`, which are now implemented as |
| 265 | + aesthetics (@teunbrand, #2800). |
| 266 | +* Stricter check on `register_theme_elements(element_tree)` (@teunbrand, #6162) |
184 | 267 |
|
185 | 268 | # ggplot2 3.5.1
|
186 | 269 |
|
@@ -227,6 +310,7 @@ documentation updates.
|
227 | 310 | * `annotate()` now warns about `stat` or `position` arguments (@teunbrand, #5151)
|
228 | 311 | * `guide_coloursteps(even.steps = FALSE)` now works with discrete data that has
|
229 | 312 | been formatted by `cut()` (@teunbrand, #3877).
|
| 313 | +* `ggsave()` now offers to install svglite if needed (@eliocamp, #6166). |
230 | 314 |
|
231 | 315 | # ggplot2 3.5.0
|
232 | 316 |
|
|
0 commit comments