|
1 | 1 | # ggplot2 3.1.0.9000
|
2 | 2 |
|
3 |
| -* `geom_rug()` gains a `length` option to allow for changing the length of the rug lines. (@daniel-wells, #3109) |
| 3 | +This is a minor release with an emphasis on internal changes to make ggplot2 |
| 4 | +faster and more consistent. The few interface changes will only affect the |
| 5 | +aesthetics of the plot in minor ways, and will only potentially break code of |
| 6 | +extension developers if they have relied on internals that have been changed. |
| 7 | +This release also sees the addition of Hiroaki Yutani (@yutannihilation) to the |
| 8 | +core developer team. |
4 | 9 |
|
5 |
| -* `coord_sf()` graticule lines are now drawn in the same thickness as |
6 |
| - panel grid lines in `coord_cartesian()`, and seting panel grid |
7 |
| - lines to `element_blank()` now also works in `coord_sf()` |
8 |
| - (@clauswilke, #2991, #2525). |
9 |
| - |
10 |
| -* ggplot2 no longer attaches any external packages when using functions that depend on |
11 |
| - packages that are suggested but not imported by ggplot2. The affected functions |
12 |
| - include `geom_hex()`, `stat_binhex()`, `stat_summary_hex()`, `geom_quantile()`, |
13 |
| - `stat_quantile()`, and `map_data()` (@clauswilke, #3126). |
| 10 | +## New features |
14 | 11 |
|
15 |
| -* `geom_hline()`, `geom_vline()`, and `geom_abline()` now throw a warning if the user supplies both an `xintercept`, `yintercept`, or `slope` value and a mapping (@RichardJActon, #2950). |
| 12 | +* This release includes a range of internal changes that speeds up plot |
| 13 | + generation. None of the changes are user facing and will not break any code, |
| 14 | + but in general ggplot2 should feel much faster. The changes includes, but are |
| 15 | + not limited to: |
| 16 | + |
| 17 | + - Caching ascent and descent dimensions of text to avoid recalculating it for |
| 18 | + every title. |
16 | 19 |
|
17 |
| -* `scale_color_continuous()` now points at `scale_colour_continuos()` so that it |
18 |
| - will handle `type = "viridis"` as the documentation states (@hlendway, #3079). |
| 20 | + - Using a faster data.frame constructor as well as faster indexing into |
| 21 | + data.frames |
| 22 | + |
| 23 | + - emoving the plyr dependency, replacing plyr functions with faster |
| 24 | + equivalents. |
19 | 25 |
|
20 |
| -* `scale_shape_identity()` now works correctly with `guide = "legend"` (@malcolmbarrett, #3029) |
| 26 | +* `geom_polygon()` can now draw polygons with holes using the new `subgroup` |
| 27 | + aesthetic. This functionality requires R 3.6.0 (@thomasp85, #3128) |
21 | 28 |
|
22 |
| -* Facet strips on the left side of plots now have clipping turned on, preventing |
23 |
| - text from running out of the strip and borders from looking thicker than for |
24 |
| - other strips (@karawoo, #2772 and #3061). |
| 29 | +* Aesthetic mappings now accept functions that return `NULL` (@yutannihilation, |
| 30 | + #2997). |
25 | 31 |
|
26 |
| -* `coord_map()` now can have axes on the top and right (@karawoo, #3042). |
| 32 | +* `stat_function()` now accepts rlang/purrr style anonymous functions for the |
| 33 | + `fun` parameter (@dkahle, #3159). |
27 | 34 |
|
28 |
| -* `geom_rug()` gains an "outside" option to allow for moving the rug tassels to outside the plot area. (@njtierney, #3085) |
| 35 | +* `geom_rug()` gains an "outside" option to allow for moving the rug tassels to |
| 36 | + outside the plot area (@njtierney, #3085) and a `length` option to allow for |
| 37 | + changing the length of the rug lines (@daniel-wells, #3109). |
29 | 38 |
|
30 |
| -* `geom_rug()` now works with `coord_flip()` (@has2k1, #2987). |
| 39 | +## Extensions |
31 | 40 |
|
32 | 41 | * Layers now have a new member function `setup_layer()` which is called at the
|
33 |
| - very beginning of the plot building process and which has access to the original |
34 |
| - input data and the plot object being built. This function allows the creation of |
35 |
| - custom layers that autogenerate aesthetic mappings based on the input data or that |
36 |
| - filter the input data in some form. One example is the new `LayerSf` class which |
37 |
| - locates the geometry column in sf objects and sets up an aesthetic mapping for it |
38 |
| - (@clauswilke, #2872). |
39 |
| - |
40 |
| -* Default labels are now generated more consistently; e.g., symbols no longer |
41 |
| - get backticks, and long expressions are abbreviated with `...` |
42 |
| - (@yutannihilation, #2981). |
43 |
| - |
44 |
| -* Diverging brewer color scale now has the correct mid-point color (@dariyasydykova, #3072). |
| 42 | + very beginning of the plot building process and which has access to the |
| 43 | + original input data and the plot object being built. This function allows the |
| 44 | + creation of custom layers that autogenerate aesthetic mappings based on the |
| 45 | + input data or that filter the input data in some form. This is mainly of |
| 46 | + interest to extension developers (@clauswilke, #2872). |
45 | 47 |
|
46 |
| -* Aesthetic mappings now accept functions that return `NULL` (@yutannihilation, |
47 |
| - #2997). |
48 |
| - |
49 |
| -* Closed arrows in `element_line()` are now filled (@yutannihilation, #2924). |
| 48 | +* `x0` and `y0` are now recognized positional aesthetics so they will get scaled |
| 49 | + if used in extension geoms and stats (@thomasp85, #3168) |
50 | 50 |
|
51 |
| -* ggplot2 now works in Turkish locale (@yutannihilation, #3011). |
| 51 | +## Minor improvements and bug fixes |
52 | 52 |
|
53 |
| -* `GeomRibbon` and `GeomArea` now sort the data along the x-axis in the |
54 |
| - `setup_data()` method rather than as part of `draw_group()` (@thomasp85, #3023) |
| 53 | +* `coord_map()` now can have axes on the top and right (@karawoo, #3042). |
55 | 54 |
|
56 | 55 | * `coord_sf()`, `coord_map()`, and `coord_polar()` now squash `-Inf` and `Inf`
|
57 | 56 | into the min and max of the plot (@yutannihilation, #2972).
|
58 | 57 |
|
59 |
| -* `stat_bin()` will now error when the number of bins exceeds 1e6 to avoid |
60 |
| - accidentally freezing the user session (@thomasp85). |
| 58 | +* `coord_sf()` graticule lines are now drawn in the same thickness as panel grid |
| 59 | + lines in `coord_cartesian()`, and seting panel grid lines to `element_blank()` |
| 60 | + now also works in `coord_sf()` |
| 61 | + (@clauswilke, #2991, #2525). |
61 | 62 |
|
62 |
| -* `stat_bin()` now handles data with only one unique value (@yutannihilation #3047). |
| 63 | +* `economics` data has been regenerated. This leads to some changes in the |
| 64 | + values of all columns (especially in `psavert`), but more importantly, strips |
| 65 | + the grouping attributes from `economics_long`. |
63 | 66 |
|
64 |
| -* `stat_function()` now accepts rlang/purrr style anonymous functions for the |
65 |
| - `fun` parameter (@dkahle, #3159). |
| 67 | +* `element_line()` now fills closed arrows (@yutannihilation, #2924). |
66 | 68 |
|
67 |
| -* `geom_polygon()` can now draw polygons with holes using the new `subgroup` |
68 |
| - aesthetic. This functionality requires R 3.6 (@thomasp85, #3128) |
| 69 | +* Facet strips on the left side of plots now have clipping turned on, preventing |
| 70 | + text from running out of the strip and borders from looking thicker than for |
| 71 | + other strips (@karawoo, #2772 and #3061). |
69 | 72 |
|
70 |
| -* `x0` and `y0` is now recognized positional aesthetics so they will get scaled |
71 |
| - if used in extension geoms and stats (@thomasp85, #3168) |
| 73 | +* ggplot2 now works in Turkish locale (@yutannihilation, #3011). |
| 74 | + |
| 75 | +* ggplot2 no longer attaches any external packages when using functions that |
| 76 | + depend on packages that are suggested but not imported by ggplot2. The |
| 77 | + affected functions include `geom_hex()`, `stat_binhex()`, |
| 78 | + `stat_summary_hex()`, `geom_quantile()`, `stat_quantile()`, and `map_data()` |
| 79 | + (@clauswilke, #3126). |
| 80 | + |
| 81 | +* `geom_area()` and `geom_ribbon()` now sort the data along the x-axis in the |
| 82 | + `setup_data()` method rather than as part of `draw_group()` (@thomasp85, |
| 83 | + #3023) |
72 | 84 |
|
73 |
| -* Re-generate economics data. This leads to some changes in the values of all |
74 |
| - columns (especially in `psavert`), but more importantly, strips the grouping |
75 |
| - attributes from `economics_long`. |
| 85 | +* `geom_hline()`, `geom_vline()`, and `geom_abline()` now throw a warning if the |
| 86 | + user supplies both an `xintercept`, `yintercept`, or `slope` value and a |
| 87 | + mapping (@RichardJActon, #2950). |
| 88 | + |
| 89 | +* `geom_rug()` now works with `coord_flip()` (@has2k1, #2987). |
| 90 | + |
| 91 | +* Default labels are now generated more consistently; e.g., symbols no longer |
| 92 | + get backticks, and long expressions are abbreviated with `...` |
| 93 | + (@yutannihilation, #2981). |
| 94 | + |
| 95 | +* All-`Inf` layers are now ignored for picking the scale (@yutannihilation, |
| 96 | + #3184). |
| 97 | + |
| 98 | +* Diverging Brewer colour palette now use the correct mid-point colour |
| 99 | + (@dariyasydykova, #3072). |
| 100 | + |
| 101 | +* `scale_color_continuous()` now points to `scale_colour_continuous()` so that |
| 102 | + it will handle `type = "viridis"` as the documentation states (@hlendway, |
| 103 | + #3079). |
| 104 | + |
| 105 | +* `scale_shape_identity()` now works correctly with `guide = "legend"` |
| 106 | + (@malcolmbarrett, #3029) |
| 107 | + |
| 108 | +* `stat_bin()` will now error when the number of bins exceeds 1e6 to avoid |
| 109 | + accidentally freezing the user session (@thomasp85). |
76 | 110 |
|
77 |
| -* All-`Inf` layers are now ignored for picking the scale (@yutannihilation, #3184). |
| 111 | +* `stat_bin()` now handles data with only one unique value (@yutannihilation |
| 112 | + #3047). |
78 | 113 |
|
79 | 114 | # ggplot2 3.1.0
|
80 | 115 |
|
|
0 commit comments