|
1 | 1 | # ggplot2 (development version) |
2 | 2 |
|
| 3 | +* Fixed regression with incorrectly drawn gridlines when using `coord_flip()` |
| 4 | + (@teunbrand, #6293). |
| 5 | +* Deprecated functions and arguments prior to ggplot2 3.0.0 throw errors instead |
| 6 | + of warnings. |
| 7 | +* Functions and arguments that were soft-deprecated up to ggplot2 3.4.0 now |
| 8 | + throw warnings. |
| 9 | +* (internal) layer data can be attenuated with parameter attributes |
| 10 | + (@teunbrand, #3175). |
| 11 | +* Date scales silently coerce <POSIXct> to <Date> and datetime scales silently |
| 12 | + coerce <Date> to <POSIXct> (@laurabrianna, #3533) |
| 13 | +* New parameters for `geom_label()` (@teunbrand and @steveharoz, #5365): |
| 14 | + * The `linewidth` aesthetic is now applied and replaces the `label.size` |
| 15 | + argument. |
| 16 | + * The `linetype` aesthetic is now applied. |
| 17 | + * New `border.colour` argument to set the colour of borders. |
| 18 | + * New `text.colour` argument to set the colour of text. |
| 19 | +* New `element_point()` and `element_polygon()` that can be given to |
| 20 | + `theme(point, polygon)` as an extension point (@teunbrand, #6248). |
| 21 | +* Turned off fallback for `size` to `linewidth` translation in |
| 22 | + `geom_bar()`/`geom_col()` (#4848). |
| 23 | +* `coord_radial()` now displays no axis instead of throwing an error when |
| 24 | + a scale has no breaks (@teunbrand, #6271). |
| 25 | +* The `fatten` argument has been deprecated in `geom_boxplot()`, |
| 26 | + `geom_crossbar()` and `geom_pointrange()` (@teunbrand, #4881). |
| 27 | +* Axis labels are now preserved better when using `coord_sf(expand = TRUE)` and |
| 28 | + graticule lines are straight but do not meet the edge (@teunbrand, #2985). |
| 29 | +* Attempt to boost detail in `coord_polar()` and `coord_radial()` near the |
| 30 | + center (@teunbrand, #5023) |
| 31 | +* Scale names, guide titles and aesthetic labels can now accept functions |
| 32 | + (@teunbrand, #4313) |
| 33 | +* Binned scales with zero-width data expand the default limits by 0.1 |
| 34 | + (@teunbrand, #5066) |
| 35 | +* New default `geom_qq_line(geom = "abline")` for better clipping in the |
| 36 | + vertical direction. In addition, `slope` and `intercept` are new computed |
| 37 | + variables in `stat_qq_line()` (@teunbrand, #6087). |
| 38 | +* Position adjustments can now have auxiliary aesthetics (@teunbrand). |
| 39 | + * `position_nudge()` gains `nudge_x` and `nudge_y` aesthetics (#3026, #5445). |
| 40 | + * `position_dodge()` gains `order` aesthetic (#3022, #3345) |
| 41 | +* More stability for vctrs-based palettes (@teunbrand, #6117). |
| 42 | +* Fixed regression in `guide_bins(reverse = TRUE)` (@teunbrand, #6183). |
| 43 | +* New function family for setting parts of a theme. For example, you can now use |
| 44 | + `theme_sub_axis(line, text, ticks, ticks.length, line)` as a substitute for |
| 45 | + `theme(axis.line, axis.text, axis.ticks, axis.ticks.length, axis.line)`. This |
| 46 | + should allow slightly terser and more organised theme declarations |
| 47 | + (@teunbrand, #5301). |
| 48 | +* `scale_{x/y}_discrete(continuous.limits)` is a new argument to control the |
| 49 | + display range of discrete scales (@teunbrand, #4174, #6259). |
| 50 | +* `geom_ribbon()` now appropriately warns about, and removes, missing values |
| 51 | + (@teunbrand, #6243). |
3 | 52 | * `guide_*()` can now accept two inside legend theme elements: |
4 | 53 | `legend.position.inside` and `legend.justification.inside`, allowing inside |
5 | 54 | legends to be placed at different positions. Only inside legends with the same |
|
42 | 91 | (@teunbrand, #4320) |
43 | 92 | * `geom_boxplot()` gains additional arguments to style the colour, linetype and |
44 | 93 | linewidths of the box, whiskers, median line and staples (@teunbrand, #5126) |
| 94 | +* `geom_violin()` gains additional arguments to style the colour, linetype and |
| 95 | + linewidths of the quantiles, which replace the now-deprecated `draw_quantiles` |
| 96 | + argument (#5912). |
| 97 | +* (breaking) `geom_violin(quantiles)` now has actual quantiles based on |
| 98 | + the data, rather than inferred quantiles based on the computed density. The |
| 99 | + `quantiles` parameter that replaces `draw_quantiles` now belongs to |
| 100 | + `stat_ydensity()` instead of `geom_violin()` (@teunbrand, #4120). |
45 | 101 | * (internal) Using `after_scale()` in the `Geom*$default_aes()` field is now |
46 | 102 | evaluated in the context of data (@teunbrand, #6135) |
47 | 103 | * Fixed bug where binned scales wouldn't simultaneously accept transformations |
|
224 | 280 | is setup once in total instead of once per group (@teunbrand, #5971) |
225 | 281 | * `facet_grid(space = "free")` can now be combined with `coord_fixed()` |
226 | 282 | (@teunbrand, #4584). |
227 | | -* `theme_classic()` now has black ticks and text instead of dark gray. In |
228 | | - addition, `theme_classic()`'s axis line end is `"square"` (@teunbrand, #5978). |
| 283 | +* `theme_classic()` has the following changes (@teunbrand, #5978 & #6320): |
| 284 | + * Axis ticks are now black (`ink`-coloured) instead of dark gray. |
| 285 | + * Axis line ends are now `"square"`. |
| 286 | + * The panel grid is now blank at the `panel.grid` hierarchy level instead of |
| 287 | + the `panel.grid.major` and `panel.grid.minor` levels. |
229 | 288 | * {tibble} is now suggested instead of imported (@teunbrand, #5986) |
230 | 289 | * The ellipsis argument is now checked in `fortify()`, `get_alt_text()`, |
231 | 290 | `labs()` and several guides (@teunbrand, #3196). |
232 | 291 | * `stat_summary_bin()` no longer ignores `width` parameter (@teunbrand, #4647). |
233 | | -* Added `keep.zeroes` argument to `stat_bin()` (@teunbrand, #3449) |
| 292 | +* Reintroduced `drop` argument to `stat_bin()` (@teunbrand, #3449) |
234 | 293 | * (internal) removed barriers for using 2D structures as aesthetics |
235 | 294 | (@teunbrand, #4189). |
236 | 295 | * `coord_sf()` no longer errors when dealing with empty graticules (@teunbrand, #6052) |
|
243 | 302 | * `geom_abline()` clips to the panel range in the vertical direction too |
244 | 303 | (@teunbrand, #6086). |
245 | 304 | * Added `panel.widths` and `panel.heights` to `theme()` (#5338, @teunbrand). |
| 305 | +* Standardised the calculation of `width`, which are now implemented as |
| 306 | + aesthetics (@teunbrand, #2800). |
| 307 | +* Stricter check on `register_theme_elements(element_tree)` (@teunbrand, #6162) |
| 308 | +* Added `weight` aesthetic for `stat_ellipse()` (@teunbrand, #5272) |
| 309 | +* Fixed a bug where the `guide_custom(order)` wasn't working (@teunbrand, #6195) |
| 310 | +* All binning stats now use the `boundary`/`center` parametrisation rather |
| 311 | + than `origin`, following in `stat_bin()`'s footsteps (@teunbrand). |
| 312 | +* `stat_summary_2d()` and `stat_bin_2d()` now deal with zero-range data |
| 313 | + more elegantly (@teunbrand, #6207). |
| 314 | +* Munching in `coord_polar()` and `coord_radial()` now adds more detail, |
| 315 | + particularly for data-points with a low radius near the center |
| 316 | + (@teunbrand, #5023). |
| 317 | +* All scales now expose the `aesthetics` parameter (@teunbrand, #5841) |
| 318 | +* Staged expressions are handled more gracefully if legends cannot resolve them |
| 319 | + (@teunbrand, #6264). |
| 320 | +* New `theme(legend.key.justification)` to control the alignment of legend keys |
| 321 | + (@teunbrand, #3669). |
| 322 | +* Added `scale_{x/y}_time(date_breaks, date_minor_breaks, date_labels)` |
| 323 | + (@teunbrand, #4335). |
| 324 | +* `ggsave()` can write a multi-page pdf file when provided with a list of plots |
| 325 | + (@teunbrand, #5093). |
| 326 | +* (internal) When `validate_subclass()` fails to find a class directly, it tries |
| 327 | + to retrieve the class via constructor functions (@teunbrand). |
| 328 | +* (internal) The ViewScale class has a `make_fixed_copy()` method to permit |
| 329 | + copying trained position scales (#3441). |
246 | 330 |
|
247 | 331 | # ggplot2 3.5.1 |
248 | 332 |
|
|
0 commit comments