Releases: plotly/plotly.R
Release list
plotly 4.12.1
Improvements
-
Completed the
plot_ly()documentation for what happens whentypeis not
specified (#2362). -
Removed the dependency on the
{lazyeval}package.
Bug fixes
-
Closed #2483:
save_image()no longer embeds Windows file paths directly into Python source passed toreticulate, fixing static image export with Kaleido on Windows. -
#2495:
ggplotly()now keeps merged legend titles in sync with their legend entries, fixing a case where an upstream change in{rlang}'s hashing could silently reorder combined legend titles (e.g.factor(vs)<br />factor(cyl)) out of step with the entries they label.
plotly 4.12.0
Changes to plotly.js
Upgrades plotly.js from v2.11.1 to v2.25.2 (35 releases). Key new features now available:
- Multiple legends: Support for
legend2,legend3, etc. with separate positioning and visibility control - Shape labels: New
labelattribute for shapes andlabel.texttemplatefor parametric shapes - Marker direction: New
marker.angle,marker.angleref, andmarker.standoffproperties for directional markers - Y-axis positioning:
shiftandautoshiftproperties to avoid y-axis overlapping in multi-axis plots - Mapbox clustering: Clustering options and bounds support for
scattermapboxtraces - Equal Earth projection: New map projection option for geo subplots
- Pattern fills: Pattern support extended to pie, funnelarea, sunburst, icicle, and treemap charts
- Editable selections: Persistent and editable selections over cartesian subplots with
editSelectionconfig option - Axis label aliases:
labelaliasfor simplified axis label customization - Grid styling:
griddashproperty and minor tick/grid line styling options
Also includes a security fix for prototype pollution and ~90KB bundle size reduction.
See the plotly.js releases page for the full changelog.
Improvements
save_image()now works with kaleido v1.0 and higher. (#2447)
Bug fixes
plotly_build()now works withggmatrixobjects (e.g., fromGGally::ggpairs()). (#2447)- Closed #2415:
ggplotly()now shows variables named 'group' in tooltips when mapped to aesthetics likecolour. - Closed #2455, #2460:
ggplotly()no longer creates empty shapes whenpanel.borderiselement_blank()(ggplot2 4.0.0 compatibility). - Closed #2466:
ggplotly()no longer errors whenscale_*_manual()has unused aesthetics (e.g.,aesthetics = c("colour", "fill")when only colour is used). - Closed #2305:
ggplotly()now respectsgeom_boxplot(outlier.shape = NA)to hide outlier points. - Closed #2467:
ggplotly()now correctly shows legends and splits traces when scales have multiple aesthetics. - Closed #2407, #2187:
ggplotly()now translateslegend.positiontheme element to plotly layout (supports "bottom", "top", "left", and numeric positions). - Closed #2281:
ggplotly()no longer drops legends whengeom_blank()is present in the plot.
plotly 4.11.0
New features
ggplotly()now supports the{ggridges}package. (#2314)
Improvements
- Various updates to
ggplotly()to better support recent versions of ggplot2. (#2315, #2368, #2442, thanks @teunbrand).
Bug fixes
plotly 4.10.4
Improvements
ggplotly()now works better with the development version of ggplot2 (> v3.4.4). (#2315)
plotly 4.10.3
Improvements
ggplotly()now works better with the development version of ggplot2 (> v3.4.3). (#2301)
Bug fixes
-
Closed #1947:
ggplotly()now correctly handlesgeom_vline/geom_hlinewith empty data. Previously, ifgeom_vline/geom_hlinewas passed an empty data frame, it would result in an error. The plot is drawn even if no lines are found; this is the same behavior asggplot2. -
Closed #1214: Do not warn in RStudio on Windows when scattergl is used. Recent RStudio versions can render scattergl correctly.
-
Closed #2298: Fix fill assignment in geom_point when a single shape value was used with multiple fill and colour values mapped (@zeehio)
plotly 4.10.2
New features
- Closed #2216: Additional selectize.js options can now be passed along to
highlight()'sselectizeargument. (#2217)
Improvements
Bug fixes
- Closed #2212:
ggplotly()no longer silently drops legends that are customized throughggplot2::guide_legend(). - Closed #2179:
save_image()no longer needsreticulate::py_run_string("import sys")in order to run without error. (#2179) - Closed #2218:
highlight(selectize = TRUE)no longer yields an incorrect selectize.js result when there is a combination of crosstalk and non-crosstalk traces. (#2217) - Closed #2208:
ggplotly()no longer errors given ageom_area()with 1 or less data points (error introduced by new behavior in ggplot2 v3.4.0). (#2209) - Closed #2220:
ggplotly()no longer errors onstat_summary(geom = "crossbar"). (#2222) - Closed #2212:
ggplotly()no longer removes legends when setting guide properties viaguides(aes = guide_xxx(...)).
plotly 4.10.1
Changes to plotly.js
- This version of the R package upgrades the version of the underlying plotly.js library from v2.5.1 to v2.11.1. This includes many bug fixes and improvements. The plotly.js release page has the full list of changes.
New features
plotlyOutput()gains a newfillparameter. WhenTRUE(the default), the widget's container element is allowed to grow/shrink to fit it's parent container so long as that parent is opinionated about its height and has been marked withhtmltools::bindFillRole(x, container = TRUE). (#2198)- The primary motivation for this is to allow plots to grow/shrink by default inside
bslib::card_body_fill()
- The primary motivation for this is to allow plots to grow/shrink by default inside
ggplotly()now supports the{ggalluvial}package. (#2061, thanks @moutikabdessabour)highlight()now supportson="plotly_selecting", enabling client-side linked brushing via mouse click+drag (no mouse-up event required, as withon="plotly_selected"). (#1280)raster2uri()supports nativeRaster objects. This enables nativeRaster support for
theannotation_raster()geom (#2174, @zeehio).
Bug fixes
ggplotly()now convertsstat_ecdf()properly. (#2065)ggplotly()now correctly handlesgeom_tile()with nofillaesthetic. (#2063)ggplotly()now respectsguide(aes = "none")(e.g.,guide(fill = "none")) when constructing legend entries. (#2067)- Fixed an issue with translating
GGally::ggcorr()viaggplotly(). (#2012) - Fixed an issue where clearing a crosstalk filter would raise an error in the JS console (#2087)
- Fixed an issue where
map_color()would throw an error on R 4.2 (#2131)
Improvements
ggplotly()does not issue warnings withoptions(warnPartialMatchArgs = TRUE)any longer. (#2046, thanks @bersbersbers)ggplotly()does not issue warnings related to use of deprecatedtidyr::gather_()in internals. (#2125, thanks @simonpcouch)
plotly 4.10.0
Breaking changes in JavaScript API
- This version of the R package upgrades the version of the underlying plotly.js library from v1.57.1 to v2.5.1. This includes many breaking changes, bug fixes, and improvements to the underlying JavaScript library. Most of the breaking changes are summarized in this announcement of the 2.0 release, but see here for the full changelog.
Breaking changes in R API
ggplotly()now uses thelayout.legend.title(instead oflayout.annotations) plotly.js API to convert guides for discrete scales. (#1961)renderPlotly()now usesPlotly.react()(instead ofPlotly.newPlot()) to redraw whenlayout(transition = )is specified. This makes it possible/easier to implement a smooth transitions whenrenderPlotly()gets re-executed. (#2001)
New Features
- Added new functions for static image exporting via the kaleido python package, namely
save_image()andkaleido(). Seehelp(save_image, package = "plotly")for installation info and example usage. (#1971)
Improvements
ggplotly()now better positions axis titles forfacet_wrap()/facet_grid(). (#1975)
plotly 4.9.4.1
- Fixes a bug in
ggplotly()with{crosstalk}and{ggplot2}v3.3.4 (#1952).
plotly 4.9.4
BUG FIXES
- Duplicate
highlight(selectize=T)dropdowns are no longer rendered in Shiny (#1936). group_by.plotly()now properly retains crosstalk information across{dplyr}versions (#1920).- Adds fixes in
ggplotly()for the upcoming{ggplot2}>3.3.3 release (#1952). - Fixes some issues with
nameandframeswhen both attributes are specified. (#1903 and #1618).