Skip to content

Commit 7477f70

Browse files
committed
polish news
1 parent 1064545 commit 7477f70

File tree

1 file changed

+95
-85
lines changed

1 file changed

+95
-85
lines changed

NEWS.md

Lines changed: 95 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1,122 +1,143 @@
11
# ggplot2 (development version)
2+
This is a larger patch release fixing a huge number of bugs and introduces a
3+
small selection of feature refinements.
24

3-
* Manual scales now allow named vectors passed to `values` to contain fewer
4-
elements than existing in the data. Elements not present in values will be set
5-
to `NA` (@thomasp85, #3451)
6-
7-
* Remove cross-inheritance of default discrete colour/fill scales and check the
8-
type and aesthetic of function output if `type` is a function
9-
(@thomasp85, #4149)
5+
## Features
106

117
* Add support for the BrailleR package for creating descriptions of the plot
128
when rendered (@thomasp85, #4459)
9+
10+
* `coord_sf()` now has an argument `default_crs` that specifies the coordinate
11+
reference system (CRS) for non-sf layers and scale/coord limits. This argument
12+
defaults to the World Geodetic System 1984 (WGS84), which means x and y
13+
positions are interpreted as longitude and latitude. This is a potentially
14+
breaking change for users who use projected coordinates in non-sf layers or in
15+
limits. Setting `default_crs = NULL` recovers the old behavior. Further,
16+
authors of extension packages implementing `stat_sf()`-like functionality are
17+
encouraged to look at the source code of `stat_sf()`'s `compute_group()`
18+
function to see how to provide scale-limit hints to `coord_sf()`
19+
(@clauswilke, #3659).
20+
21+
* `ggsave()` now uses ragg to render raster output if ragg is available. It also
22+
handles custom devices that sets a default unit (e.g. `ragg::agg_png`)
23+
correctly (@thomasp85, #4388)
1324

14-
* Fix a bug in the layer implementation that introduced a new state after the
15-
first render which could lead to a different look when rendered the second
16-
time (@thomasp85, #4204)
25+
* `ggsave()` now returns the saved file location invisibly (#3379, @eliocamp).
26+
27+
* The scale arguments `limits`, `breaks`, `minor_breaks`, `labels`, `rescaler`
28+
and `oob` now accept purrr style lambda notation (@teunbrand, #4427). The same
29+
is true for `as_labeller()` (and therefore also `labeller()`)
30+
(@netique, #4188).
31+
32+
* Manual scales now allow named vectors passed to `values` to contain fewer
33+
elements than existing in the data. Elements not present in values will be set
34+
to `NA` (@thomasp85, #3451)
1735

18-
* Make sure `label_bquote()` has access to the calling environment when
19-
evaluating the labels (@thomasp85, #4141)
36+
* Date and datetime position scales support out-of-bounds (oob) arguments to
37+
control how limits affect data outside those limits (@teunbrand, #4199).
38+
39+
## Fixes
40+
41+
* Fix a bug that `after_stat()` and `after_scale()` cannot refer to aesthetics
42+
if it's specified in the plot-global mapping (@yutannihilation, #4260).
2043

2144
* Fix bug in `annotate_logticks()` that would cause an error when used together
2245
with `coord_flip()` (@thomasp85, #3954)
2346

24-
* Fix a bug in `guide_bins()` where keys would disappear if the guide was
25-
reversed (@thomasp85, #4210)
47+
* Fix a bug in `geom_abline()` that resulted in `intercept` not being subjected
48+
to the transformation of the y scale (@thomasp85, #3741)
49+
50+
* Extent the range of the line created by `geom_abline()` so that line ending
51+
is not visible for large linewidths (@thomasp85, #4024)
52+
53+
* Fix bug in `geom_dotplot()` where dots would be positioned wrong with
54+
`stackgroups = TRUE` (@thomasp85, #1745)
55+
56+
* Fix calculation of confidence interval for locfit smoothing in `geom_smooth()`
57+
(@topepo, #3806)
2658

2759
* Fix bug in `geom_text()` where `"outward"` and `"inward"` justification for
2860
some `angle` values was reversed (@aphalo, #4169, #4447)
2961

30-
* Fix a bug in legend justification where justification was lost of the legend
31-
dimensions exceeded the available size (@thomasp85, #3635)
32-
33-
* Fix calculation of confidence interval for locfit smoothing (@topepo, #3806)
62+
* `ggsave()` now sets the default background to match the fill value of the
63+
`plot.background` theme element (@karawoo, #4057)
3464

35-
* Fix bug in `scale_[x|y]_date()` where custom breaks functions that resulted in
36-
fracional dates would get misaligned (@thomasp85, #3965)
37-
38-
* Fix bug in `scale_[x|y]_datetime()` where a specified timezone would be
39-
ignored by the scale (@thomasp85, #4007)
40-
41-
* Using `theme(aspect.ratio = ...)` together with free space in `facet_grid()`
42-
now crrectly throws an error (@thomasp85, #3834)
43-
44-
* Fix a bug in `stat_summary_bin()` where one more than the requested number of
45-
bins would be created (@thomasp85, #3824)
46-
47-
* Fix issue in `sec_axis()` that would throw warnings in the absence of any
48-
secondary breaks (@thomasp85, #4368)
65+
* It is now deprecated to specify `guides(<scale> = FALSE)` or
66+
`scale_*(guide = FALSE)` to remove a guide. Please use
67+
`guides(<scale> = "none")` or `scale_*(guide = "none")` instead
68+
(@yutannihilation, #4094).
4969

50-
* Fix a bug in `geom_abline()` that resulted in `intercept` not being subjected
51-
to the transformation of the y scale (@thomasp85, #3741)
70+
* Fix a bug in `guide_bins()` where keys would disappear if the guide was
71+
reversed (@thomasp85, #4210)
5272

5373
* Fix bug in `guide_coloursteps()` that would repeat the terminal bins if the
5474
breaks coincided with the limits of the scale (@thomasp85, #4019)
55-
56-
* Extent the range of the line created by `geom_abline()` so that line ending
57-
is not visible for large linewidths (@thomasp85, #4024)
5875

5976
* Make sure that default labels from default mappings doesn't overwrite default
6077
labels from explicit mappings (@thomasp85, #2406)
61-
62-
* `stat_count()` now computes width based on the full dataset instead of per
63-
group (@thomasp85, #2047)
6478

6579
* Fix bug in `labeller()` where parsing was turned off if `.multiline = FALSE`
6680
(@thomasp85, #4084)
6781

68-
* Fix a bug in `qplot()` when supplying `c(NA, NA)` as axis limits
69-
(@thomasp85, #4027)
82+
* Make sure `label_bquote()` has access to the calling environment when
83+
evaluating the labels (@thomasp85, #4141)
7084

71-
* Fix bug in `geom_dotplot()` where dots would be positioned wrong with
72-
`stackgroups = TRUE` (@thomasp85, #1745)
85+
* Fix a bug in the layer implementation that introduced a new state after the
86+
first render which could lead to a different look when rendered the second
87+
time (@thomasp85, #4204)
7388

74-
* Make sure position_jitter creates the same jittering independent of whether it
75-
is called by name or with constructor (@thomasp85, #2507)
89+
* Fix a bug in legend justification where justification was lost of the legend
90+
dimensions exceeded the available size (@thomasp85, #3635)
7691

7792
* Fix a bug in `position_dodge2()` where `NA` values in thee data would cause an
7893
error (@thomasp85, #2905)
7994

95+
* Make sure `position_jitter()` creates the same jittering independent of
96+
whether it is called by name or with constructor (@thomasp85, #2507)
97+
8098
* Fix a bug in `position_jitter()` where different jitters would be applied to
8199
different position aesthetics of the same axis (@thomasp85, #2941)
82-
83-
* `ggsave()` now uses ragg to render raster output if ragg is available
84-
(@thomasp85, #4388)
85100

86-
* `coord_sf()` now has an argument `default_crs` that specifies the coordinate
87-
reference system (CRS) for non-sf layers and scale/coord limits. This argument
88-
defaults to the World Geodetic System 1984 (WGS84), which means x and y positions
89-
are interpreted as longitude and latitude. This is a potentially breaking change
90-
for users who use projected coordinates in non-sf layers or in limits. Setting
91-
`default_crs = NULL` recovers the old behavior. Further, authors of extension
92-
packages implementing `stat_sf()`-like functionality are encouraged to look at the
93-
source code of `stat_sf()`'s `compute_group()` function to see how to provide
94-
scale-limit hints to `coord_sf()` (@clauswilke, #3659).
95-
96-
* `ggsave()` now sets the default background to match the fill value of the
97-
`plot.background` theme element (@karawoo, #4057)
98-
99-
* Extended `stat_ecdf()` to calculate the cdf from either x or y instead from y only (@jgjl, #4005).
101+
* Fix a bug in `qplot()` when supplying `c(NA, NA)` as axis limits
102+
(@thomasp85, #4027)
103+
104+
* Remove cross-inheritance of default discrete colour/fill scales and check the
105+
type and aesthetic of function output if `type` is a function
106+
(@thomasp85, #4149)
100107

101-
* Fixed a bug in `labeller()` so that `.default` is passed to `as_labeller()`
102-
when labellers are specified by naming faceting variables. (@waltersom, #4031)
108+
* Fix bug in `scale_[x|y]_date()` where custom breaks functions that resulted in
109+
fracional dates would get misaligned (@thomasp85, #3965)
103110

104-
* Updated style for example code (@rjake, #4092)
111+
* Fix bug in `scale_[x|y]_datetime()` where a specified timezone would be
112+
ignored by the scale (@thomasp85, #4007)
113+
114+
* Fix issue in `sec_axis()` that would throw warnings in the absence of any
115+
secondary breaks (@thomasp85, #4368)
105116

106-
* Only drop groups in `stat_ydensity()` when there are fewer than two data points and throw a warning (@andrewwbutler, #4111).
117+
* `stat_bin()`'s computed variable `width` is now documented (#3522).
118+
119+
* `stat_count()` now computes width based on the full dataset instead of per
120+
group (@thomasp85, #2047)
107121

108-
* It is now deprecated to specify `guides(<scale> = FALSE)` or
109-
`scale_*(guide = FALSE)` to remove a guide. Please use
110-
`guides(<scale> = "none")` or `scale_*(guide = "none")` instead
111-
(@yutannihilation, #4094).
122+
* Extended `stat_ecdf()` to calculate the cdf from either x or y instead from y
123+
only (@jgjl, #4005)
112124

113-
* Date and datetime position scales support out-of-bounds (oob) arguments to
114-
control how limits affect data outside those limits (@teunbrand, #4199).
125+
* Fix a bug in `stat_summary_bin()` where one more than the requested number of
126+
bins would be created (@thomasp85, #3824)
115127

116-
* `stat_bin()`'s computed variable `width` is now documented (#3522).
128+
* Only drop groups in `stat_ydensity()` when there are fewer than two data
129+
points and throw a warning (@andrewwbutler, #4111).
117130

118131
* Fixed a bug in strip assembly when theme has `strip.text = element_blank()`
119132
and plots are faceted with multi-layered strips (@teunbrand, #4384).
133+
134+
* Using `theme(aspect.ratio = ...)` together with free space in `facet_grid()`
135+
now crrectly throws an error (@thomasp85, #3834)
136+
137+
* Fixed a bug in `labeller()` so that `.default` is passed to `as_labeller()`
138+
when labellers are specified by naming faceting variables. (@waltersom, #4031)
139+
140+
* Updated style for example code (@rjake, #4092)
120141

121142
* ggplot2 now requires R >= 3.3 (#4247).
122143

@@ -127,17 +148,6 @@
127148
* Improved error with hint when piping a `ggplot` object into a facet function
128149
(#4379, @mitchelloharawild).
129150

130-
* Fix a bug that `after_stat()` and `after_scale()` cannot refer to aesthetics
131-
if it's specified in the plot-global mapping (@yutannihilation, #4260).
132-
133-
* `ggsave()` now returns the saved file location invisibly (#3379, @eliocamp).
134-
135-
* The scale arguments `limits`, `breaks`, `minor_breaks`, `labels`, `rescaler`
136-
and `oob` now accept purrr style lambda notation (@teunbrand, #4427).
137-
138-
* `as_labeller()` (and therefore also `labeller()`) now handles functions in
139-
purrr-style lambda notation (@netique, #4188).
140-
141151
# ggplot2 3.3.3
142152
This is a small patch release mainly intended to address changes in R and CRAN.
143153
It further changes the licensing model of ggplot2 to an MIT license.

0 commit comments

Comments
 (0)