Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
8 contributors

Users who have contributed to this file

@etpinard @archmoj @nicolaskruchten @s417-lama @mdtusz @alexcjohnson @jbampton @antoinerg
3683 lines (2897 sloc) 238 KB

plotly.js changelog

For more context information, please read through the release notes.

To see all merged commits on the master branch that will be part of the next plotly.js release, go to:

https://github.com/plotly/plotly.js/compare/vX.Y.Z...master

where X.Y.Z is the semver of most recent plotly.js release.

[2.16.3] -- 2022-11-16

Fixed

  • Fixed hover on multicategory axes [#6360], with thanks to @filipesantiagoAM for the contribution!

[2.16.2] -- 2022-11-11

Fixed

  • Fix mapbox clearOutline calls (regression introduced in 2.13.0) [#6367]

[2.16.1] -- 2022-10-21

Fixed

  • Fix choroplethmapbox selection when adding new traces on top [#6345]

[2.16.0] -- 2022-10-14

Added

  • Add clustering options to scattermapbox [#5827], with thanks to @elben10 for the contribution!
  • Add bounds to mapbox suplots [6339]

[2.15.1] -- 2022-10-11

Fixed

  • Fix latest version of plotly.js main module on npm

[2.15.0] -- 2022-10-06

Added

  • Add angle, angleref and standoff to marker and add backoff to line; also introduce new arrow symbols to facilitate drawing networks [#6297]
  • Add minreducedwidth and minreducedheight to layout for increasing control over automargin [#6307]
  • Add entrywidth and entrywidthmode to legend [#6202, #6324]

Changed

  • Use valType of angle for rotation in pie [#6304]

Fixed

  • Fix mapbox touch event after switching back from select mode [#6281], with thanks to @mmtmr for the contribution!
  • Fix automargin to update axis titles in redraws [#6312]
  • Fix exporting patterns with transparent color [#6318]
  • Fix exporting text on empty slices [#6335]
  • Disable interactions for treemap, icicle, sunburst, pie, funnelarea, parcats, parcoords and sankey traces when staticPlot is set to true [#6296]

[2.14.0] -- 2022-08-10

Added

  • Add support for sankey links with arrows [#6276], with thanks to @Andy2003 for the contribution!
  • Add editSelection option to config [#6285]

Changed

  • Update dutch translations and fix dateMonth format for nl locale to confirm with expected nl format [#6261], with thanks to @eirvandelden for the contribution!

[2.13.3] -- 2022-07-25

Fixed

  • Emit plotly_selected event on plot API calls and GUI edits [#6277]

[2.13.2] -- 2022-07-21

Fixed

  • Fix sankey select error (regression introduced in 2.13.0) [#6265]
  • Handle missing drag layer of invisible sankey traces to fix select error [#6267]
  • Emit selection event in shape drawing dragmodes when an existing selection is modified [#6262]

[2.13.1] -- 2022-07-14

Fixed

  • Avoid attaching selections to undefined eventData (regression introduced in 2.13.0) [#6260]

[2.13.0] -- 2022-07-14

Added

  • Add selections, newselection and activeselection layout attributes to have persistent and editable selections over cartesian subplots [#6243]
  • Add unselected.line.color and unselected.line.opacity options to parcoords trace [#6216, #6236]
  • Add "exclusive" and "inclusive" quartile-computing algorithm to violin trace via quartilemethod attribute [#6187]
  • Add flaglist options including "left", "right", "top", "bottom", "width" and "height" to control the direction of automargin on cartesian axes [#6193]
  • Add delta.prefix and delta.suffix to indicator trace [#6246], with thanks to @paulovieira for the contribution!
  • Add official Chinese (Taiwan) translation (locale zh-tw) [#6247], with thanks to @sec2 for the contribution!
  • Add official Sinhala translation (locale si) [#6238], with thanks to @sujithranga for the contribution!

Changed

  • Display Plotly's new logo in the modebar [#6232]

Fixed

  • Fix undesirable missing hover labels of box & violin traces [#6189]
  • Fix xref description of shapes [#6194]

[2.12.1] -- 2022-05-09

Fixed

  • Fix for disabling polar rotation when dragmode is set to false [#6147], with thanks to @jonfunkhouser for the contribution!
  • Fix custom modebar buttons mutate the input [#6177]
  • Fix various missing and duplicate spaces in plot schema descriptions [#6183]

[2.12.0] -- 2022-05-02

Added

  • Add griddash axis property to cartesian, polar, smith, ternary and geo subplots and add griddash and minorgriddash to carpet trace [6144], with thanks to @njwhite for the contribution!
  • Implement various options to position and style minor ticks and grid lines on cartesian axis types including minor.tickmode, minor.tickvals, minor.tickcolor, minor.ticklen, minor.tickwidth, minor.dtick, minor.tick0, minor.nticks, minor.ticks, minor.showgrid, minor.gridcolor, minor.griddash and minor.gridwidth [6166]

Changed

  • Use the "willReadFrequently" 2d context creation attribute to optimize readback performance [#6084], with thanks to @junov for the contribution!

Fixed

  • avoid drawing blank tick labels on cartesian axes [#6163]

[2.11.1] -- 2022-03-15

Fixed

  • Regenerate functions of regl-based traces in the "strict" bundle [#6141]

[2.11.0] -- 2022-03-11

Added

  • Add a CSP complaint variation of regl-based traces i.e. parcoords, splom, scattergl, scatterpolargl to the "strict" bundle [#6083]
  • Add scattersmith trace to the "strict" bundle [#6135]

[2.10.1] -- 2022-03-08

Fixed

  • Fix mesh3d generation when alphahull is a positive number (regression introduced in 2.5.1) [#6133]

[2.10.0] -- 2022-03-04

Added

  • Add support to use version 3 of MathJax and add typesetMath attribute to config [#6073], with thanks to Equinor for sponsoring the related development!
  • Add fillpattern options to scatter trace [#6101], with thanks to @s417-lama for the contribution!

[2.9.0] -- 2022-02-04

Added

  • Implement ticklabelstep to reduce labels on 2D axes and colorbars [#6088], this feature was anonymously sponsored: thank you to our sponsor!

Changed

  • Display the version of plotly.js when hovering over the modebar [#6077]
  • Various dependency updates as listed under the v2.9.0 milestone

Fixed

  • Fix vertical spacing of legend items in horizontal mode [#6094]

[2.8.3] -- 2021-12-20

Fixed

  • Correct formatted x/y texttempate for histogram trace [#6070]

[2.8.2] -- 2021-12-20

Fixed

  • Fix missing x/y texttemplate for histogram, bar, funnel and waterfall traces [#6069]

[2.8.1] -- 2021-12-15

Fixed

  • Do not exceed layout font size when textfont is set to "auto" for heatmap, histogram2d, contour and histogram2dcontour traces [#6061]

[2.8.0] -- 2021-12-10

Added

  • Introduce horizontal colorbars [#6024]
  • Implement legend.grouptitlefont and hoverlabel.grouptitlefont [#6040]
  • Add texttemplate and textfont to heatmap and histogram2d traces as well as histogram2dcontour and contour traces when coloring is set "heatmap" [#6028]

Fixed

  • Fix to discard negative values from pie chart post-aggregation instead of during summation [#6051], with thanks to @destiny-wu for the contribution!

[2.7.0] -- 2021-12-02

Added

  • Add texttemplate, textposition, textfont, textangle, outsidetextfont, insidetextfont, insidetextanchor, constraintext and cliponaxis to histogram trace [#6038]

Changed

  • Bump probe-image-size module to v7.2.2 [#6036]

Fixed

  • Fix mapbox derived coordinate for Retina displays [#6039]
  • Fix interaction between uirevision and autorange. Because we push autorange and range back into layout, there can be times it looks like we're applying GUI-driven changes on top of explicit autorange and other times it's an implicit autorange, even though the user's intent was always implicit. This fix treats them as equivalent. [#6046]

[2.6.4] -- 2021-11-26

Fixed

  • Avoid bar with text to jump when selected [#6043]

[2.6.3] -- 2021-11-12

Fixed

  • Fix hover events in Shadow DOM [#6021], with thanks to @SabineWren for the contribution!

[2.6.2] -- 2021-11-05

Fixed

  • Fix loading issue in orca (regression introduced in 2.6.0) [#6011]

[2.6.1] -- 2021-11-03

Fixed

  • Fix to avoid including local stackgl_modules/node_modules in the package (regression introduced in 2.6.0) [#6008]

[2.6.0] -- 2021-10-29

Added

  • Add smith subplots and the scattersmith trace type for displaying Smith charts [#5956, #5992], with thanks to Kitware and @waxlamp for kicking off this effort.

Changed

  • Improve drawing the contour lines in non-linear space e.g. on log axes [#5985], with thanks to @andrew-matteson for the contribution!
  • Bump eslint to v8 release candidate including fixes for no-new-func test [#5969]

Fixed

  • Fix npm install problem for npm v6 users (regression introduced in 2.5.0) [#6004]
  • Fix unhover event data for gl3d subplots [#5954], with thanks to @dwoznicki for the contribution!
  • Fix scatter3d opacity restyle bug [#5958], with thanks to @dwoznicki for the contribution!
  • Skip "hoverinfo": "none" trace display for hover modes [#5854], with thanks to @Domino987 for the contribution!
  • Display prefix and suffix of invisible polar axes in hover [#5964]
  • Reduce calls to getBoundingClientRect in convertToTspans [#5976]
  • Avoid wrapping legend items if already on the first column [#5996]
  • Fix horizontal alignment of colorbar in editable mode when xanchor is set to "center" [#6002]
  • Fix to improve rendering of graphs with Mathjax on Firefox v82 and higher [#5993]

[2.5.1] -- 2021-09-16

Fixed

  • Reduce bundle sizes by updating surface-nets, robust-determinant, robust-linear-solve modules [#5934, #5935, #5936]
  • Update CONTRIBUTING guidelines to use npm v7 and node.js v16 [#5933], with thanks to @sleighsoft for the contribution!

[2.5.0] -- 2021-09-03

Added

  • Include surface, isosurface, volume, streamtube, cone, mesh3d, scatter3d, pointcloud and heatmapgl in the "strict" bundle by avoid function generation for these traces at runtime [#5888]

Changed

  • Use node.js v16 and npm v7 in development and upgrade the version of package-lock.json [#5922, #5919]

Fixed

  • Adjust position of hover in respect to CSS transform [#5916]

[2.4.2] -- 2021-08-31

Fixed

  • Fix positioning unified hover box when div has zero height (regression introduced in 2.3.0) [#5913]

[2.4.1] -- 2021-08-27

Fixed

  • Fix double click legends when groupclick is set to "toggleitem" [#5909]

[2.4.0] -- 2021-08-27

Added

  • Add legend.groupclick options [#5849, #5906], with thanks to @brussee for the contribution!
  • Add touch support to slider component [#5856], with thanks to @keul for the contribution!
  • Provide bbox of hover items in event data [#5512]

Changed

  • Upgrade regl module from version 1.6.1 to version 2.1.0 [#5870]

Fixed

  • Fix invalid call to lib.promiseError in lib.syncOrAsync [#5878], with thanks to @jklimke for the contribution!
  • Use hoverlabel.font for group titles in unified hover modes [#5895]

[2.3.1] -- 2021-07-30

Fixed

  • Fix period positioned hover to work in different time zones as well as on grouped bars [#5864]
  • Use ids from axes when making hover data keys [#5852]
  • Do not include regl based traces parcoords, splom, scattergl and scatterpolargl in the "strict" bundle so that it could be used with CSP without WebGL warning [#5865]

[2.3.0] -- 2021-07-23

Added

  • Add new number formatting and text alignment options by upgrading d3.format method from d3@v3 to version 1.4.5 of d3-format module [#5125, #5842]
  • Add "satellite" and several other projection types to geo subplots [#5801]
  • Improve rendering of scattergl, splom and parcoords by implementing plotGlPixelRatio for those traces [#5500]

Changed

  • Upgrade d3.geo method from d3@v3 to version 1.12.1 of d3-geo module and version 2.9.0 of d3-geo-projection module [#5112]
  • Upgrade d3.interpolate method from d3@v3 to version 1.4.0 of d3-interpolate module in icicle, indicator, parcats, sunburst and treemap [#5826]
  • Upgrade regl-scatter2d, regl-line2d and regl-error2d modules to use version 1.1.0 of to-float32 module to improve the performance [#5786], with thanks to @Seranicio for the contribution!
  • Edit the type of constraintrange in parcoords trace to pass validation [#5673]
  • Sort object key values in schema [#5813]
  • Sort plot-schema and add test to track plot-schema changes [#5776]
  • Preview CHANGELOG when building dist on master [#5780, #5808]
  • Preview plot-schema changes between releases when building dist on master [#5814]
  • Display changes made to package.json between versions and add identical tags to draft bundles created by publish-dist job on CircleCI [#5815]
  • Simplify devtool by relying on XMLHttpRequest instead of d3.json [#5832]
  • Update CONTRIBUTING guidelines on how to submit pull requests and generate new baseline [#5791, #5792]
  • More maintenance work listed under the v2.3.0 milestone

Fixed

  • Fix unknown filename when exporting charts using new versions of Safari [#5609, 5838], with thanks to @rlreamy for the contribution!
  • Improve README for ES6 module import [#5779], with thanks to @andreafonso for the contribution!
  • Position hover in respect to the average of values in (x|y) unified modes (regression introduced in 2.0.0) [#5845]
  • Fix hover with period alignment points and improve positioning of spikes and unified hover label in order not to obscure referring data points and fit inside plotting area [#5846]
  • Allow clickable legend group titles when group has no pie-like traces [#5771]
  • Fix mapbox line text example [#5804]
  • Fix links to time format options so that they point to the d3-time-format v2.2.3 applied not the latest [#5818]

[2.2.1] -- 2021-07-06

Fixed

  • Fix to improve sanitizing href inputs for SVG and HTML text elements [#5803]

[1.58.5] -- 2021-07-06

Fixed

  • Fix to improve sanitizing href inputs for SVG and HTML text elements [#5803]

[2.2.0] -- 2021-06-28

Added

  • Legend group titles [#5752], this feature was anonymously sponsored: thank you to our sponsor!
  • Add half-year directive (%h) for formatting dates and improve descriptions to include extra date formatting options [#5762], this feature was anonymously sponsored: thank you to our sponsor!

Changed

  • Modernize the process of creating baselines using Kaleido and improve image & other export test systems [#5724]
  • Centralize jsdom utility to return Plotly object in node.js test scripts and use it in generating plot-schema [#5755]
  • Bump turf bbox dependency to v6.4.0 [#5747]
  • Bump turf area dependency to v6.4.0 [#5748]
  • More maintenance work listed under the v2.2.0 milestone

Fixed

  • Cache values and patterns in set_convert for axes with rangebreaks to improve performance [#5659], with thanks to @spasovski for the contribution!
  • Fix fetching geojson when ES6 import is used to load the library [#5763]
  • Correct readme links [#5746]

[2.1.0] -- 2021-06-18

Added

  • Add icicle trace type [#5546] with thanks to @Kully and @mtwichan of Zyphr for their contribution!
  • Implement legendrank attribute in traces [#5591]
  • Implement fgopacity, fgcolor & "overlay" fillmode for bars and handle bar pattern and legend when marker.colorscale is present [#5733]

Changed

Fixed

  • Fix setting the width of categorical bars & boxes to unit [#5732]

[2.0.0] -- 2021-06-07

Added

  • CSP safety: refactored to avoid usage of function constructors from basic, cartesian, finance, geo, and mapbox partial bundles and added tests to ensure that they will not again do so in the future [#5359, #5383, #5387], with thanks to Equinor for sponsoring the related development!
  • Add strict partial bundle [#5413, #5444], which includes the maximal subset of the library which does not rely on function constructors
  • Add custom-bundle script to facilitate generation of custom bundles [#5527, #5508, #5605, #5712]
  • Add mock validation utility [#5653]
  • Implement "fast" zsmooth option for image trace [#5354, #5386], with thanks to @almarklein for the contribution!
  • Implement various marker.pattern options in histogram, bar and barpolar traces [#5520, #5537] with thanks to @s417-lama for the contribution!
  • Implement ticklabeloverflow options on cartesian axes and colorbars to drop tick labels going outside div or domain [#5584]
  • Implement (x|y|z)hoverformat, (u|v|w)hoverformat and valueformat to cartesian and gl3d traces [#5563]
  • Implement "(x|y)other" hovertemplate options to format differing positions in compare and unified modes [#5690]
  • Add layout and template attributes to facilitate enabling and disabling predefined modebar buttons e.g. shape drawing and "v1hovermode" via modebar.add and modebar.remove [#5660]

Removed

  • Drop support for old browsers IE9 and IE10 [#5376, #5380, #5460, #5491]
  • Stop exporting v3 of d3 under Plotly.d3 [#5400, #5406]
  • Stop attaching _has* plot types to fullLayout [#5409]
  • Stop injecting MathJax config by default [#5514]
  • Remove sane-topojson and MathJax v2.3 files from dist folder and change supported MathJax version to v2.7.5 [#5487, #5492, #5494]
  • Reduce the number of exported methods from Plotly.Fx and Plotly.Plots in the API [#5420]
  • Drop Plotly.plot from the API [#5412, #5370, #5393]
  • Drop Plotly.Queue from the API [#5423]
  • Drop non-object role keys from attribute definition [#5425, #5432]
  • Drop deprecated contourgl and area traces as well as deprecated legacy pre-scatterpolar polar-related attributes bar.t, bar.r, scatter.t, scatter.r, layout.radialaxis, layout.angularaxis and gd.framework [#5399, #5408, #5409, #5398, #5438]
  • Stop overwriting the "latest" bundles on CDN, please specify the version [#5462, #5697]

Deprecated

  • Deprecate heatmapgl and pointcloud trace types for later removal [#5447]
  • Deprecate transform attributes [#5657]

Changed

  • No longer show "Aa" text in legends unless there is only text in the legend item [#5682]
  • New defaults for legend.title.font and colorbar.title.font to depend on legend.font and colorbar.tickfont and increase their sizes [#5611]
  • New defaults for spikes by setting spikedistance to "-1" and axis.spikesnap to "hovered data" [#5648]
  • Default hovermode to "closest" [#5647]
  • Default textposition to "auto" in bar, histogram and waterfall traces [#5638]
  • Hide hover and spike modebar buttons by default while layout.modebar.add or config.modeBarButtonsToAdd could be used to bring them back in [#5654, #5658]
  • Switch to native-promise-only module to handle es6 promises [#5358]
  • Switch to probe-image-size module to get width and height of images [#5388, #5635]
  • Relax test for plain objects to enable validation in node.js and multiple window contexts [#5411, #5498]
  • Display latitudes before longitudes in mapbox and geo hoverlabels to comply with ISO 6709 (Standard representation of geographic point location by coordinates) [#5485, #5676]
  • Adjust text shadow color in respect to paper_bgcolor for better dark mode display of sankey, parcoords and parcats traces [#5506]
  • Improve sankey text namely support pseudo-html, fix textfont.color and avoid clipping [#5531]
  • Make selection event data of scattergl on par with scatter traces [#5534]
  • Fire plotly_unhover event when dragging [#5407], with thanks to @rreusser for the contribution!
  • Include transforms and calendars in partial bundles [#5379, #5422]
  • Require unminified mapbox-gl dependency for unminified bundles and revisit compression options for minified bundles [#5449]
  • Remove header comments from the source files and only add headers to the top of dist files at build time [#5436, #5446]
  • Guard against unexpected characters at build time [#5424]
  • Minimize indentation in plot-schema [#5663]
  • More maintenance work listed under the 60th milestone!

Fixed

  • Fix "toself" fill for scattergl traces to handle multiple polygons [#5355], with thanks to @ruijin for the contribution!
  • Fix element targeting on hover in shadow DOM [#5256], with thanks to @dbluhm for the contribution!
  • Fix hover interaction on geo subplots in Firefox [#5607], with thanks to @LucaVazz for the contribution!
  • Improve scattergl performance when using typed arrays [#5632], with thanks to @Seranicio for the contribution!
  • Fix native ES6 import [#5708], with thanks to @oldrich-svec suggestion!
  • Hide gridlines and ticks overlapping "inside" ticklabels [#5550, #5586, #5589, #5610, #5684]
  • Improve hover in compare and unified modes [#5543, #5618, #5662, #5664, #5668, #5683]
  • Fix spike on bar-like traces [#5542]
  • Fix bar inside text font color default when using colorscale [#5666]
  • Fix texttemplate on log axes [#5622]
  • Fix displaying zero threshold for indicator trace [#5430]
  • Fix axis constraints for heatmapgl [#5476]
  • Fix setTimeout functions to return in the case of undefined layouts [#5482]
  • Fix misinterpreted clip-path by some programs after export [#5686]
  • Avoid redundant number casting in Lib.ensureNumber function [#5637]
  • Avoid duplicate keys in object literals within plotly builds [#5458]
  • Revise attributions of Carto, Stamen and Open Street Map styles [#5696]
  • Improve attribute compression and avoid redundant copyright comments in non-minified bundles [#5426, #5429, #5439]
  • Provide links to all pull requests in the changelog [#5469]
  • Provide documention for creating custom bundles and improve readme files [#5702, #5703, #5704, #5705, #5713]
  • Provide a link to plotly.js dependencies when publishing various plotly.js-dist packages to npm [#5711]
  • Adjust npm publish script to use relevant tag e.g. "rc" when publishing various plotly.js-dist packages [#5467]
  • Place CDN publish script inside plotly.js repository [#5468, #5470]
  • Fix syntax test on the dist files [#5471]

[1.58.4] -- 2020-12-21

Fixed

  • Fix preserveDrawingBuffer WebGL config for displaying transparent gl3d scenes on Apple devices running latest Safari versions (v13 and higher) [#5351]
  • Fix spelling [#5349, #5356] with thanks to @jbampton for the contribution!

[1.58.3] -- 2020-12-17

Fixed

  • Fix autorange for inside tick label positions [#5332]
  • Fix "nonnegative" and "tozero" rangemode for inside tick label positions (regression introduced in 1.58.2) [#5331]
  • Fix missing categories and tick labels on react updates (regression introduced in 1.54.6) [#5345]
  • Fix to avoid "autoscale" error when axis autorange is set to false (regression introduced in 1.42.0) [#5336]

[1.58.2] -- 2020-12-08

Fixed

  • Fix root.color error for treemap and sunburst traces (regression introduced in 1.58.0) [#5330]
  • Avoid infinite redraws to compute autorange for "inside" tick labels on the axes linked with scaleanchor and/or matches [#5329]
  • Provide padding for "inside" tick labels of various cartesian traces e.g. heatmap, bar and line plots [#5325]
  • Adjust position of multi-line dates for tick labels in respect to side and ticklabelposition on x-axis [#5326]
  • Move tape to dev-dependencies [#5323]

[1.58.1] -- 2020-12-04

Fixed

  • Fix automargin bug for the case of short remaining height or width for plot [#5315], (regression introduced in 1.58.0)

[1.58.0] -- 2020-12-02

Added

  • Add ticklabelposition attribute to cartesian axes and colorbars [#5275], this feature was anonymously sponsored: thank you to our sponsor!
  • Add "strict" autotypenumbers to axes and layout [#5240]
  • Add itemwidth to legends [#5212], with thanks to @s417-lama for the contribution!
  • Add root.color attribute to sunburst and treemap traces [#5232, #5245], with thanks to @thierryVergult for the contribution!

Changed

  • Enable fast image rendering for all linear axes [#5307], with thanks to @almarklein for the contribution!
  • Rework matches and scaleanchor so they work together [#5287]

Fixed

  • Fix hover on mobile and tablet devices for gl3d subplots [#5239] (regression introduced in 1.34.0), with thanks to @jdpaterson for the contribution!
  • Fix interactions when static/dynamic CSS transforms e.g. scale and translate are applied to the graph div or its parents [#5193, #5302], with thanks to @alexhartstone for the contribution!
  • Fix reordering of mapbox raster and image layers on update [#5269]
  • Fix categoryorder for missing values in cartesian traces [#5268]
  • Fix automargin bug to provide space for long axis labels [#5237]
  • Avoid styling of backgrounds during automargin redraws [#5236]
  • Fix displaying zero length bars with staticPlot config option [#5294]
  • Fix setting false locale to "en-US" [#5293]
  • Fix typo in Czech locale file [#5255], with thanks to @helb for the contribution!
  • Fix gl3d scene initialization [#5233]

[1.57.1] -- 2020-10-20

Changed

  • Update template for new pull requests [#5220]
  • Provide a default hovertemplate label for attribute "base" in bar traces [#5216]

Fixed

  • Fix staticPlot behaviour for rangeslider and legend [#5210], with thanks to @miqh for the contribution!
  • Fix colorbar react to new styles [#5217], with thanks to @anaplian for the contribution!
  • Fix computed margins when plot involves too many redraws [#5225]
  • Fix build issue for Chart Studio Cloud (regression introduced in 1.56.0) [#5223]

[1.57.0] -- 2020-10-15

Added

  • Introduce "domain" axis references in layout images, shapes and annotations [#5014]
  • Add rotation attribute to sunburst traces [#5171, #5201], with thanks to @thierryVergult for the contribution!
  • Provide computed margins in "full-json" export [#5203], this feature was anonymously sponsored: thank you to our sponsor!

Changed

  • Mention the "full-json" option in the Plotly.toImage warning [#5204]
  • Use current graph dimensions in Plotly.downloadImage [#5209]

Fixed

  • Fix importing color modules for webpack users (regression introduced in 1.56.0) [#5189]
  • Fix positioning ticks and labels on axes with rangebreaks and/or "period" ticklabelmode [#5187, #5208]
  • Fix autorange computation when a category matches a range extreme [#5211], with thanks to @LoganWlv for the contribution!
  • Fix displaying modebar after Plotly.restyle [#5181], with thanks to @Yook74 for the contribution!

[1.56.0] -- 2020-09-30

Added

  • Introduce period positioning attributes on date axes in various cartesian traces [#5074, #5175], this feature was anonymously sponsored: thank you to our sponsor!
  • Add minexponent attribute to improve control over SI prefixes in axis tick labels [#5121], with thanks to @ignamv for the contribution!
  • Add sort attribute to sunburst and treemap traces to disable automatic sort [#5164], with thanks to @thierryVergult for the contribution!
  • Handle rgba colors in colorscale of surface traces [#5166], with thanks to @lucapinello for the contribution!

Changed

  • Disable undesirable text selections on graphs [#5165]
  • Adjust tick0 for weekly periods [#5180]
  • More informative error messages when creating sunburst and treemap charts [#5163]

Fixed

  • Fix positioning legend items [#5139], with thanks to @fredrikw for the contribution!
  • Fix rounding big numbers in pie and sunburst traces [#5152]
  • Display marker and line colors in scatter3d and scattergl when hovering [#4867]

[1.55.2] -- 2020-09-08

Fixed

  • Fix automargin when ticklabelmode is set to "period" [#5134]

[1.55.1] -- 2020-09-02

Fixed

  • Install image-size module in dependencies [#5119]

[1.55.0] -- 2020-09-02

Added

  • Introduce "period" ticklabelmode on cartesian date axes [#4993, #5055, #5060, #5065, #5088, #5089], this feature was anonymously sponsored: thank you to our sponsor!
  • Add new formatting options for weeks and quarters [#5026], this feature was anonymously sponsored: thank you to our sponsor!
  • Add source attribute to image traces for fast rendering [#5075]
  • Add zsmooth attribute for discrete heatmapgl traces [#4953], with thanks to @ordiology for the contribution!
  • Add horizontal and vertical markers for arrow charts [#5010]
  • Add touch support to rangeslider [#5025], with thanks to @priyanomi, @cristiantx, @JasDev42 for their contribution!

Changed

  • Improve contribution guide & readme, add code of conduct [#5068]
  • Bump various dev-dependencies namely bubleify and glslify [#5084, #5085, #5118]

Fixed

  • Fix updating title and tick labels during transition with react [#5045]
  • Fix table wheel scroll for Firefox [#5051], with thanks to @ManelBH for the contribution!
  • Fix ISO-8601 short time zone format [#5015], with thanks to @mtgto for the contribution!
  • Fix numeric periods on date axes for bar with base [#5061]
  • Fix bar and box widths on categorical axes in "overlay" mode [#5072]
  • Fix symbol numbers in string format [#5073]
  • Fix gl2d marker sizes [#5093]
  • Fix default latitude span in geo subplots [#5033]
  • Improve axis tick increment [#5114]

[1.54.7] -- 2020-07-23

Changed

  • Revert [#4904] to fix a template regression introduced in 1.54.4 [#5016]

[1.54.6] -- 2020-07-09

Fixed

  • Link matching axes categories during Plotly.relayout calls (regression introduced in 1.54.2) [#4977]
  • Fix "median" aggregation transforms [#4969]
  • Fix parcats category order when the dimension only includes numbers [#4973]
  • Fix numeric sort in ternary drag [#4975]
  • Fix heatmapgl supply defaults not to add unimplemented attributes xcalendar, ycalendar, xgap, ygap, zsmooth, zhoverformat, hoverongaps and hovertemplate to gd._fullData [#4950]
  • Fix contourgl supply defaults not to add unimplemented attributes xcalendar, ycalendar to gd._fullData [#4951]

[1.54.5] -- 2020-06-23

Fixed

  • Fix placement of dividers on reversed-range multicategory axes [#4939]
  • Fix placement of candlestick, ohlc and box plots on axes with rangebreaks [#4937]
  • Handle undefined layout and data arguments in Plotly.validate [#4938]

[1.54.4] -- 2020-06-22

Changed

  • Bump ecstatic, gl-selet-static, gl-plot2d & gl-plot3d and drop cwise to simplify build process & address security warnings [#4929, #4930, #4934]

Fixed

  • Fix setting width and color of lines via template various attributes namely tickcolor, tickwidth, ticklen, linecolor, linewidth, zerolinecolor, zerolinewidth, gridcolor, gridwidth, etc. [#4904]

[1.54.3] -- 2020-06-16

Fixed

  • Fix autosize case of hidden div with non-px size [#4925]

[1.54.2] -- 2020-06-10

Changed

  • Bump regl dependency to v1.6.1 [#4881]
  • Bump ndarray dependency to v1.0.19 [#4910]
  • Bump mapbox-gl dependency to v1.10.1 [#4859]
  • Improve docs about building Plotly with Angular [#4182]

Fixed

  • Fix wheel event for IE-11 [#4385]
  • Fix plot_bgcolor react [#4816]
  • Fix legend.title react [#4827]
  • Fix rangebreaks on candlestick & ohlc traces [#4814]
  • Fix rangebreaks on heatmap traces with 2-D z array [#4821]
  • Fix rangebreaks on histogram2d traces [#4829]
  • Fix rangebreaks overlapping and tick positions [#4831]
  • Fix "array" tickmode on date & log axes [#4851]
  • Fix category order of matching axes when calling react [#4832]
  • Fix for bypassing non-string ids during matching axes [#4858]
  • Fix selection of single value dimensions in parcoords traces [#4878]
  • Fix bar lengths in milliseconds from base [#4900]
  • Fix gl3d ticks when converting dates to milliseconds (regression introduced in 1.21.0) [#4903]

[1.54.1] -- 2020-05-04

Changed

Fixed

  • Set pointer-events only for editable shapes to allow pan, zoom & hover events to work inside shapes (regression introduced in 1.54.0) [#4810]
  • Update and validate various mocks [#4762]

[1.54.0] -- 2020-04-30

Added

  • Introduce new drag modes "drawline", "drawrect", "drawcircle", "drawopenpath", "drawclosedpath" & add optional modebar buttons for drawing & removing new shapes inside cartesian subplots & add newshape and activeshape attributes to layout & add editable and fillrule attributes to layout.shapes [#4775]
  • Add angle and allowoverlap attributes to marker of scattermapbox traces [#4575, #4794]
  • Add Portuguese (Portugal) pt-pt locale [#4736]

Changed

Fixed

  • Sanitize sourceattribution in mapbox layers [#4793]
  • Fix reactto mapbox style changes [#4720]
  • Fix transform sort order with gaps [#4783]
  • Fix autorange for bar and waterfall when base is present [#4714]
  • Fix "extremes" opacityscale option for volume and surface [#4725]
  • Fix no-WebGL warning for scattergl and splom traces [#4777]
  • Fix notifier CSS to have a fallback in font stack [#4778]

[1.53.0] -- 2020-03-31

Added

  • Introduce rangebreaks on date axes mainly thanks to [#4614] with API revision & improvements in [#4639, #4641, #4644, #4649, #4652, #4653, #4660, #4661, #4670, #4677, #4684, #4688, #4695, #4696, #4698, #4699], this feature was anonymously sponsored: thank you to our sponsor!
  • Introduce "(x|y) unified" hovermode [#4620, #4664, #4669, #4687], this feature was anonymously sponsored: thank you to our sponsor!
  • Add "hovered data" mode to spikesnap [#4665]
  • Add "full-json" export format to Plotly.toImage and Plotly.dowloadImage [#4593]
  • Add node.customdata and link.customdata to sankey traces [#4621]
  • Add opacityscale for surface traces [#4480]

Changed

  • Improve contour labels (add extra pad) and correct minus sign [#4540]
  • Improve sizing text inside pie and sunburst (add extra pad) [#4519]
  • Improve display of spikelines when spikedistance is set to -1 [#4637]
  • Improve compare hovermode to include all points at same coordinate [#4664]
  • Improve histogram hover labels (harmonize start & end values) [#4662]
  • Display new colors on Plotly's logo [#4691]
  • Update links & descriptions to Chart Studio Cloud and plotly.com website [#4694]
  • Update contributing guidelines & add info about trace module architecture [#4624]
  • Require config.plotlyServerURL to be set for Chart Studio export [#4690]

Fixed

  • Fix Plotly.downloadImage to match transparencies in gl3d plots with the on-screen render [#4566]
  • Fix amount of transparency applied by opacity in surface traces [#4480, #4642]
  • Fix gaps in bar traces (regression introduced in 1.50.0) [#4634]
  • Fix gaps in funnel & waterfall [#4663]
  • Fix template to set axis type, tickformatstops, tick0, dtick, tickvals and tickmode [#4670, #4685]

[1.52.3] -- 2020-03-02

Fixed

  • Make identical bundles on different nodes [#4601]
  • Fix (regression introduced in 1.52.1) and improve interactive display of narrow points of bar-like traces [#4568]
  • Ensure text fits inside sunburst sectors with zero values [#4580]
  • Reset splom selectBatch and unselectBatch on updates [#4595]
  • Retry different mobile/tablet config to render gl3d subplots on various devices & browsers e.g. Brave [#4549]
  • Bump is-mobile to handle iPad Pro & iPad 7th + iOs v13 + Safari [#4548]
  • Fix orthographic hover after scroll zoom [#4562]
  • Preserve gl3d scene aspectratio after orthographic scroll zoom [#4578]
  • Include gl3d scene.aspectmode changes in relayout updates [#4579]
  • Apply utf-8 charset in test_dashboard [#4554]

[1.52.2] -- 2020-02-03

Fixed

  • Handle 'missing' matching axes [#4529]
  • Fix hover for mesh3d, isosurface and volume when using plotGlPixelRatio > 1 (bug introduced in 1.45.0) [#4534]
  • Fix hover of mesh3d traces with facecolor and intensitymode: 'cell' [#4539]
  • Fix gl3d rendering on iPad Pro & iPad 7th + iOs v13 + Safari [#4360, #4546]
  • Fix pixel-rounding logic for blank bars [#4522]
  • Fix pathbar.visible updates in treemap traces [#4516]
  • Fix waterfall 'closest' hover when cursor is below the size axis [#4537]
  • Fix mapbox layout layer opacity for raster types [#4525]
  • Allow 0 in grouby transform nameformat templates [#4526]
  • Fix Plotly.validate for valType:'any' attributes [#4526]
  • Bump d3-interpolate to v1.4.0 [#4475]
  • Bump d3-hierarchy to v1.1.9 [#4475]
  • Fix typo in annotation align attribute description [#4528]
  • Fix plot_bgcolor and paper_bgcolor attribute description [#4536]
  • Fix insidetextorientation description for pie and sunburst traces [#4523]

[1.52.1] -- 2020-01-13

Fixed

  • Fix handling of geo.visible false edge case in order to override template.layout.geo.show* attributes [#4483]

[1.52.0] -- 2020-01-08

Added

  • Add uniformtext behavior to bar, funnel, waterfall, pie, funnelarea, sunburst and treemap traces [#4420, #4444, #4469]
  • Add "pre-computed" q1/median/q3 input signature for box traces [#4432]
  • Add support for legend titles [#4386]
  • Add legend items for choropleth, choroplethmapbox, cone, densitymapbox, heatmap, histogram2d, isosurface, mesh3d, streamtube, surface, volume traces [#4386, #4441]
  • Add "auto-fitting" behavior to geo subplots via geo.fitbounds attribute [#4419]
  • Add support for custom geojson geometries in choropleth and scattergeo traces [#4419]
  • Add "exclusive" and "inclusive" quartile-computing algorithm to box traces via quartilemethod attribute [#4432]
  • Add insidetextorientation attribute to pie and sunburst traces [#4420]
  • Add intensitymode to allow cell intensity values in mesh3d traces [#4446]
  • Add featureidkey attribute to choroplethmapbox, choropleth and scattergeo traces [#4419]
  • Add geo.visible shortcut attribute [#4419]
  • Add coordinates of mapbox subplot view as a derived property in plotly_relayout event data [#4413]
  • Add modebar buttons zoomInMapbox and zoomOutMapbox [#4398]
  • Add support for typed array in groupby transforms groups [#4410]
  • Add notifyOnLogging config option that allows log/warn/error messages to show up in notifiers pop-ups [#4464]
  • Enable loading locale bundles before plotly.js bundles [#4453]
  • Add Korean ko locale [#4315]

Changed

  • Skip mapbox subplot map position updates while panning/zooming removing potential stuttering [#4418]
  • Optimize mapbox raster layout layer updates [#4418]
  • Improve sunburst and treemap click events behavior [#4454]
  • Improve attribute description of sunburst/treemap outsidetextfont [#4463]
  • Update source and dist file headers to 2020 [#4457]

Fixed

  • Fix streamtube traces with numeric string coordinates (bug introduced in 1.51.0) [#4431]
  • Correctly handle different data orders in isosurface and volume traces [#4431]
  • Fix symbol numbers in scattergl and splom traces [#4465]
  • Fix coloraxis colorbars for sunburst and treemap with values colorscales [#4444]
  • Fix inside text fitting for bar, funnel and waterfall traces with set textangle [#4444]
  • Fix handling of invalid values and zero totals for pie and funnelarea [#4416]
  • Fix colorbar of reversescale colorscales of heatmap-coloring contours [#4437]
  • Fix colorbar templating for "non-root" colorscales [#4470]
  • Fix event data and some hover templates for x/y/z heatmap + contour [#4472]
  • Fix "toggleothers" behavior for graphs with traces not in legend [#4406]
  • Fix histogram bingroup logic when calendars module is not registered [#4439]
  • Fix "almost equal" branchvalue: 'total' partial sum cases [#4442]
  • Fix handling of treemap pathbar.textfont [#4444]

[1.51.3] -- 2019-12-16

Fixed

  • Fix Plotly.Plots.resize edge cases ensuring now that its promises always resolve [#4392]
  • Fix position of link hover labels in vertical sankey [#4404]
  • Fix box autorange for traces with "inverted" notched [#4388]

[1.51.2] -- 2019-11-25

Fixed

  • Fix texttemplateformatting on axes that define tick prefixes and suffixes [#4380, #4384]
  • Fix cmin and cmax computations during color value updates on shared color axes [#4366]
  • Fix contour and histogram2dcontour legend item rendering when reversescale is turned on [#4356]
  • Fix contour and histogram2dcontour legend item rendering when set to a shared color axis [#4356]
  • Handle missing vertexcolor and facecolor during mesh3d rendering [#4353]
  • No longer coerce contour and colorscale attributes for mesh3d when not needed [#4346]
  • Remove a duplicate function call in parcoords code [#4357]
  • Include opacity in the surface trace plot schema [#4344]
  • Mention legend.bgcolor default in attribute description [#4362]

[1.51.1] -- 2019-11-04

Fixed

  • Fix scattergl missing points plot and react (bug introduced in 1.33.0) [#4323]
  • Skip non-numeric values in image trace plot [#4325]

[1.51.0] -- 2019-10-29

Added

  • Add image trace type [#4289, #4307, #4313, #4319]
  • Add automargin attribute in pie traces, enabling outside text labels to push the margins [#4278]
  • Add title.standoff attribute to cartesian axes, setting the distance in pixels between the tick labels and the axis title [#4279]
  • Add hoverongaps attribute to heatmap and contour traces, for suppressing hover labels on missing data [#4291]
  • Add args2 attribute to updatemenus buttons which can be used to create toggle buttons [#4305]
  • Add zh-CN locale [#4276, #4310]

Changed

  • Introduce workarounds for "common" (aka axis) hover label clipping about the graph's viewport [#4298]
  • No longer accept trace domain settings where end is not greater than start [#4304]

Fixed

  • Fix streamtube coloring and positioning when generated with non-xyz grid signatures [#4271]
  • Fix trace-type update calls on mapbox subplots [#4295]
  • Fix width of box and violin items on log position axes [#4283]
  • Fix box/meanline offset for one-sided vertical violin traces [#4314]
  • Fix missing gaps in some scattergl line traces [#4316]
  • Fix event data during scroll on gl3d subplots with orthographic projections [#4292]
  • Handle data with identical positions in cone traces [#4306]
  • Handle invalid entry before trying to render treemap trace [#4312]
  • Fix heatmap and contour description for connectgaps [#4284]

[1.50.1] -- 2019-10-15

Fixed

  • Guard against mirrored + automargin anchor:'free' axes (bug introduced in 1.50.0) [#4273]
  • Fix streamtube trace starts case when missing a dimension [#4265]
  • Fix scattergl performance for drawing legend items of traces with typed arrays [#4268]
  • Fix legend item style for markers with typed array colors [#4268]
  • Do not attempt to re-hover on exiting subplots [#4269]
  • Fix "layout first" transition race condition [#4262]

[1.50.0] -- 2019-10-07

Added

  • Add treemap trace type [#4185, #4219, #4227, #4242]
  • Add texttemplate attribute to all traces that support on-graph text [#4071, #4179]
  • Add date custom formatting in hovertemplate and texttemplate e.g. '%{x|%b %-d, %Y}' [#4071]
  • Add transition support to bar trace length, width, on-graph text positioning, marker style and error bars [#4180, #4186]
  • Add attribute count, colorscale support and many hoverinfo / textinfo flags to sunburst traces [#4185, #4245]
  • Add constraint info to parcats click and hover events [#4211]
  • Add support for legend scrolling via touch interactions [#3873, #4214]
  • Add ru and uk locales [#4204]
  • Publish minified dist npm packages for the main plotly.js bundle and all our partial bundles [#4169]

Changed

  • Cap the number of redraws triggered by the auto-margin routine, which should prevent all potential infinite redraw loops [#4216]
  • Improve cartesian axis draw performance by (1) computing its bounding box only when required and (2) using a bounding-box computation cache [#4165]
  • Log message when margin-push values are too big to be considered during auto-margin computations [#4160]
  • Log message when legend position is constrained into graph viewbox [#4160]
  • Process layout image using data URI synchronously [#4105]
  • Adapt default axis ranges to rangemode values 'tozero' and 'nonnegative' [#4171]
  • Show zeroline even when no grid lines are present [#4189]
  • Use mapbox-gl version 1.3.2 [#4230]
  • Make touchmove event listener non passive on mobile drag [#4231]
  • Improve streamtube trace description [#4181]
  • Improve indicator trace description [#4246]
  • Improve legend x and y attribute descriptions [#4160]

Fixed

  • Fix attempt at fixing gl3d in Chrome 77 problems [#4256]
  • Fix numerous legend positioning bug [#4160]
  • Fix numerous axis automargin bugs [#4165, #4216]
  • Correctly handle <br> and \n in scattermapbox on-graph text [#4176]
  • Fix scattergl hover over nulls (bug introduced in 1.45.0) [#4213]
  • Correctly remove off-screen annotations during pan interactions (bug introduced in 1.40.0) [#4170]
  • Fix contour and contourcarpet label formatting via colorbar settings (bug introduced in 1.48.0) [#4177]
  • Fix background rectangle dimensions for horizontal grouped legends [#4160]
  • Correctly handle non-linear axis types during transitions [#4249]
  • Fix branchvalues: 'total' for generated sunburst sectors [#4253]
  • Fix Download plot translations [#4148]
  • Fix fr translations for "Click to enter --- title" [#4204]
  • Fix tiny zoombox behavior [#4188]
  • Fix rendering of constraint contours with rounded-off edge path [#4102]
  • Fix "autoscale" modebar button bug where it sometimes toggled axis showspikes [#4241]
  • Fix multi-axis transition axis-to-axis range "leaks" [#4167]
  • Fix toggleHover and resetViews modebar buttons for some partial bundle + graph setups [#4184]
  • Correctly list color-rgba module as dependency [#4207]
  • Fix third-party dependency listing for gl-cone3d and gl-streamtube3d [#4208, #4215]
  • Fix line.width attr declaration in *contour traces [#4218]
  • Remove hover attribute from carpet and contourcarpet schema (as they do not support hover yet) [#4102]

[1.49.5] -- 2019-09-18

Changed

  • Drop support for IE10 and IE9 as part of browserify upgrade [#4168]

Fixed

  • Clear rejected promises from queue when calling Plotly.react [#4197]
  • Do not attempt to remove non-existing mapbox layout source and layers [#4197]
  • Invalid mapbox layout layers with blank-string tile entries [#4197]
  • Fix hover labels for choroplethmapbox with number locations items [#4197]

[1.49.4] -- 2019-08-22

Fixed

  • Fix access token validation logic for custom mapbox style URLs (regression introduced in 1.49.0) [#4144]
  • Fix rendering of cartesian ticks under mirror: 'all' [#4140]

[1.49.3] -- 2019-08-20

Fixed

  • Fix graphs with visible: false sankey traces [#4123]
  • Fix scattergl with mode: 'text' and text arrays longer than the coordinates arrays [#4125, #4126]
  • Fix rangeslider positioning when left margin is pushed by other component [#4127]

[1.49.2] -- 2019-08-13

Fixed

  • Fix gl3d hover behavior when multiple points share identical position [#4096]
  • Fix mapbox-gl@1.1.1 dependency version listing in package.json [#4094]
  • Fix decimal and thousands separator declaration for Italian (it) locale [#4122]
  • Fix indicator steps attribute declaration [#4115]
  • Performance fix - use Axes.prepTicks (not Axes.calcTicks) for indicator number and delta formatting [#4099]

[1.49.1] -- 2019-07-31

Fixed

  • Fix parcoords bug when dimension values are all zeroes (bug introduced in 1.49.0) [#4080]
  • Fix parcoords select line rendering when constraint range falls below range [#4083]
  • Fix parcoords select line rendering when selecting outside displayed axis range [#4087]
  • Fix parcoords select by click when preceded by click away from axis [#4089]
  • Fix mapbox.style values in attribution declaration [#4079]
  • Remove unused variable from scatter3d shader [#4090]

[1.49.0] -- 2019-07-24

Added

  • Add indicator traces [#3978, #4007, #4014, #4037, #4029]
  • Add choroplethmapbox traces [#3988]
  • Add densitymapbox traces [#3993]
  • Add new mapbox style values: open-street-map, carto-positron, carto-darkmatter, stamen-terrain, stamen-toner, stamen-watercolor and white-bg that do not require a Mapbox access token [#3987, #4068]
  • Add support for sourcetype value raster and image and type raster for mapbox layout layers [#4006]
  • Add below attribute to scattermapbox traces [#4058]
  • Add support for below: 'traces' in mapbox layout layers [#4058]
  • Add sourceattribution attribute to mapbox layout layers [#4069]
  • Add labelangle and labelside attributes to parcoords traces [#3966]
  • Add doubleClickDelay config option [#3991]
  • Add showEditInChartStudio config option [#4061]

Changed

  • Bump mapbox-gl to v1.1.1 [#3987, #4035]
  • Include source attribution on mapbox subplots and image exports [#4069]
  • Improve mapbox error messages and attribute descriptions [#4035]
  • Do not try to resize hidden graph divs under responsive:true [#3972]
  • Improve robustness of sankey traces with circular links [#3932]
  • Use URL.createObjectURL during Plotly.toImage and Plotly.downloadImage improving performance [#4008]
  • Make parcoords pick layer 100% invisible [#3946]
  • (dev-only) drop "pull-font-svg" pre-process step [#4062]

Fixed

  • Fix rendering of geo traces with locationmode and no base layers (bug introduced in 1.48.0) [#3994]
  • Fix lakes and rivers geometry on scoped geo subplots (bug introduced in 1.48.0) [#4048]
  • Fix heatmap rendering for traces with extra categorical coordinates (bug introduced in 1.48.0) [#4038]
  • Do not show zero-height bar rendering when their marker.line.width is zero (bug introduced in 1.48.3) [#4056]
  • Do not show prefix and suffix on log axis minor ticks showing digits [#4064]
  • Fix inconsistent parcoords behavior when data is outside range [#3794]
  • Fix parcoods default tick formatting [#3966, #4011, #4013]
  • Fix pseudo-html and MathJax rendering for parcoords traces [#3966]
  • Fix marker.line.color default for choropleth traces [#3988]
  • Fix scatter3d and scattergl handling of rgb colors with extra alpha values [#3904, #4009]
  • Fix zoomed-in box/violin hover labels edge cases [#3965]
  • Fix hoverinfo & hovertemplate initial, delta and final flags for waterfall traces [#3963]
  • Fix hovertemplate default number formatting for choropleth, scattergeo, scatterpolar(gl), barpolar and scatterternary traces [#3968]
  • Remove sliders / updatemenus command observer mutation [#4023]
  • Fix plot-schema anim listing for traces that do not (yet) animate [#4024]
  • Fix rangeslider style during selections [#4022]
  • Fix per-value categoryorder for box and violin traces [#3983]
  • Fix handling of non-numeric marker.line.width array items [#4056, #4063]
  • Fix downloadImage for images of more than 2MB in size in Chrome [#4008]
  • Fix plotly_clickannotation triggering when editable:true [#3979]
  • Remove unused font-atlas-sdf dependency [#3952]
  • Fix tickformat attribute description links to d3 formatting language [#4044]
  • Fix typo in error_(x|y).type description [#4030]
  • Fix typo in colorscale description [#4060]

[1.48.3] -- 2019-06-13

Fixed

  • Fix hoverinfo and hovertemplate behavior for funnel traces [#3958]

[1.48.2] -- 2019-06-11

Fixed

  • Fix rendering after 1d -> 2d -> 1d drag motion under dragmode: 'zoom' (bug introduced in 1.48.0) [#3950]
  • Fix for scattergl hover and click events to give the 'top' point instead of the 'bottom' point [#3924]
  • Fix contour label rendering for non-monotonically increasing x/y [#3934]
  • Fix carpet axis title position for decreasing a/b coords [#3927]
  • Fix multiple single-valued overlaid autobinned histogram edge case [#3935]
  • Fix parcoords tickvals and ticktext documentation [#3925]

[1.48.1] -- 2019-05-30

Fixed

  • Fix single-sample-point histogram2d traces with set bins settings [#3922]
  • Fix bingroup attributes for histogram2dcontour traces [#3922]
  • Fix hover label content on empty histogram2d bins [#3922]

[1.48.0] -- 2019-05-28

Added

  • Add funnel traces [#3817, #3911]
  • Add funnelarea traces [#3876, #3912]
  • Add support for shared color axes via coloraxis attributes in the layout [#3803, #3786, #3901, #3916]
  • Add support for sorting categorical cartesian axes by value [#3864]
  • Add bingroup to histogram, histogram2d and histogram2dcontour to group traces to have compatible auto-bin values [#3845]
  • Add legend itemclick and itemdoubleclick attributes to set or disable the legend item click and double-click behavior [#3862]
  • Add insidetextanchor attribute for bar and waterfall traces [#3817]
  • Add textangele attribute for bar and waterfall traces [#3817]
  • Add textinfo to waterfall traces [#3790]
  • Add support for side-by-side scatter3d marker and line colorbars [#3803]
  • Add meta attribute to traces to complement layout.meta [#3865]
  • Emit plotly_relayouting during drag motion on subplots [#3888]
  • Add Swedish locale (sv) [#3821]

Changed

  • Use sane-topojson@v3.0.1 (backed by Natural Earth v4.1.0 shapefiles) to generate geographic features in geo subplots. Most notably, the Russia/Ukraine border has been updated [#3856]
  • Draw box and violin points as legend item when other parts have opacity 0 [#3846]
  • Draw marker.line for bars with no-span [#3848]
  • Do not make request for topojson files when drawing geo subplot without geographic features [#3856]

Fixed

  • Fix categoryarray ordering for heatmap and contour traces [#3827]
  • Fix heatmap brick positioning for non-overlapping categories [#3827]
  • Fix Plotly.update calls that resulted in removal of modebar buttons [#3825]
  • Fix auto-range for one-sided violin with set width [#3842]
  • Fix hover label placement for one-sided violin with set width [#3842]
  • Fix scattergl mode ordering in/out of selections [#3810]
  • Fix scattergl unselected styling in/out of select/lasso dragmode [#3810]
  • Fix automargin edge cases where draw code can be stuck in infinite loops [#3811]
  • Fix locationmode: 'USA-states' on world scope under 50m resolution [#3856]
  • Fix reset view interactions on geo subplots following geo.scope updates [#3856]
  • Fix Plotly.animate on graphs with multiple subplot types [#3860]
  • Fix filter transforms that result in empty coordinate arrays [#3766]
  • Fix handling of 0 number in pie and sunburst text and hover [#3847]
  • Fix sunburst text in sectors centered around theta=180 [#3907]
  • Fix handling of number 0 in sunburst ids/parents [#3903]
  • Fix selection range event data on category axes [#3869]
  • Fix contour with heatmap coloring rendering after graph resize [#3803]
  • Fix histogram2d hover label content for trace with bins spanning multiple y sample values [#3890]
  • Fix parcoords rendering of first value when it is part of own constraintrange [#3915]
  • Fix rgba colorscale fallback for parcoords traces [#3917]
  • Fix de-selected style of error bar on bar traces [#3644]
  • Fix hover labels rendering for some zoomed-in violin traces [#3889]
  • Fix mesh3d vertexcolor attribute description [#3688]

[1.47.4] -- 2019-04-25

Fixed

  • Fix graphs with sankey and cartesian subplots [#3802]
  • Fix selection of bar traces on subplot with a range slider [#3806]

[1.47.3] -- 2019-04-18

Fixed

  • Fix MathJax rendering in Firefox [#3783]
  • Fix waterfall hover under hovermode: 'closest' [#3778]
  • Fix waterfall connector.line.width updates [#3789]
  • Fix waterfall positioning on date axes [#3791]
  • Fix waterfall default connector line color [#3788]
  • Fix hoverlabel.align behavior for centered hover labels [#3781]

[1.47.2] -- 2019-04-15

Fixed

  • Fix bar 'auto' and 'inside' textposition rendering on log size axes [#3762, #3773]
  • Fix matching axes autorange algorithm for date axes [#3772]
  • Fix SVG gradient rendering (colorbar and marker gradient) when <base> is present on page [#3765]

[1.47.1] -- 2019-04-10

Fixed

  • Fix console errors during selections (bug introduced in 1.47.0) [#3755]

[1.47.0] -- 2019-04-09

Added

  • New volume gl3d trace type [#3488]
  • Implement node grouping via box and lasso selections for sankey traces [#3712, #3750]
  • Implement hovermode: 'x' for sankey traces, allowing users to compare links in a flow on hover [#3730]
  • Add way for Plotly.toImage and Plotly.downloadImage to export images with current graph width/height by passing width/height option as null [#3746]
  • Add legend attribute itemsizing with value 'constant' making legend item symbol sizing independent of the sizing of their corresponding trace item [#3732]
  • Add hoverlabel.align with value 'left', 'right' and 'auto' to set the horizontal alignment of the text content within hover labels [#3753]
  • Add contour.start, contour.end and contour.size attribute to surface traces [#3469]
  • Add isosurface and volume to the gl3d bundle [#3488]

Changed

  • Allow re-plot during drag interactions [#3716]
  • Use high-precision in scattergl error bars shader [#3739]

Fixed

  • Fix implementation of geo lonaxis and lataxis attribute tick0 [#3706]
  • Fix scrollZoom: false configuration on mapbox subplots [#3745]
  • Fix rendering of alpha channel in mesh3d traces [#3744]
  • Fix hoverlabel.namelength: 0 case [#3734]
  • Fix implementation of hoverlabel.namelength for pie, sankey, sunburst and the gl3d traces [#3734]
  • Fix waterfall rendering when transforms filter out all increasing or decreasing bars [#3720]
  • Fix clip-path attributes for pages with parenthesis in their <base> URL [#3725]

[1.46.1] -- 2019-04-02

Fixed

  • Fix bar traces that set textfont but don't have text (bug introduced in 1.46.0) [#3715]
  • Fix hover text formatting in waterfall traces [#3711]
  • Fix surface and mesh3d color scales with more than 256 items [#3702]

[1.46.0] -- 2019-04-01

Added

  • New waterfall trace type [#3531, #3708]
  • New sunburst trace type [#3594]
  • Add attributes node.x and node.y to sankey traces [#3583]
  • Implement connectgaps on surface traces [#3638]
  • Implement hovertemplate for box and violin points [#3685]

Changed

  • Display hover labels above modebar, ensuring that the hover labels are always visible within the graph div [#3589, #3678]

Fixed

  • Fix horizontal legend item wrapping by pushing overflowed items to newline [#3628]
  • Fix erroneous gap for histogram under relative barmode [#3652]
  • Fix position of overlapping grouped bars within trace [#3680]
  • Fix violin bandwidth logic for traces with identical values in sample [#3626]
  • Fix violin trace scalegroup description [#3687]
  • Fix stacked scatter for groupby traces [#3692]
  • Fix outside text on empty items in bar traces under textposition: 'outside' [#3701]
  • Fix pie un-hover event emission after updates [#3662, 3690]
  • Fix scatter line decimation algo for filled trace with far-away data points [#3696]
  • Fix heatmap and contour computation for traces with category coordinates containing 0 [#3691]
  • Fix zoom interactions on gl3d subplots using an orthographic projection [#3601]
  • Fix miscellaneous gl3d camera on-initialization bugs [#3585]
  • Fix surface contour line rendering in some Firefox versions [#3670]
  • Fix rendering of marker points and gl3d subplots on date axes (or with coordinates close to 64K floating limits) for WebGL-based traces on some iOS devices [#3666, #3672, #3674, #3676]
  • Fix center-aligned hover labels positioning [#3681]

[1.45.3] -- 2019-03-19

Fixed

  • Fix legend click dispatch on legend item symbols (bug introduced in 1.44.0) [#3635]
  • Fix overlapping of "very close" hover labels [#3645]
  • Fix hovermode default logic for stacked scatter traces [#3646]
  • Fix glPixelRatio handling in surface contour lines [#3641]
  • Fix gl2d subplot zoombox appearance (bug introduced in 1.32.0) [#3647]
  • Fix axis label updates on gl2d subplots on scroll (bug introduced in 1.32.0) [#3647]
  • Fix dragmode relayout calls on gl2d subplots [#3647]
  • Improve info about <extra> in hovertemplate description [#3623]

[1.45.2] -- 2019-03-07

Fixed

  • Fix webpack builds that include sankey by upgrading d3-sankey-circular to 0.33.0 (bug introduced in 1.45.0) [#3611]

[1.45.1] -- 2019-03-05

Fixed

  • Fix axis automargin pushes for rotated tick labels [#3605]
  • Fix automargin logic on (very) small graphs [#3605]
  • Fix locales support in hovertemplate strings [#3586]
  • Fix gl3d reset camera buttons for scenes with orthographic projection [#3597]
  • Fix typed array support for parcoords dimensions values and line.color [#3598]
  • Fix cone rendering on some older browsers [#3591]
  • Fix lightposition behavior for cone traces [#3591]
  • Fix lightposition behavior for streamtube trace [#3593]
  • Remove unused files from gl-cone3d dependency [#3591]
  • Remove unused files from gl-streamtube3d dependency [#3593]

[1.45.0] -- 2019-02-26

Added

  • Add support for circular networks in sankey traces [#3406, #3535, #3564]
  • Add matching axes behavior to cartesian axes via new axis attribute and new splom attribute dimensions attribute matches [#3506, #3565]
  • Add attributes alignmentgroup and offsetgroup to bar, histogram, box and violin traces to make cross-trace positioning easier [#3529]
  • Add support for orthographic projections in gl3d subplots via new attribute scene.camera.projection.type [#3550]
  • Add cmid and zmid colorscale attributes to pick the middle of the color range during the auto-colorscale computations [#3549]
  • Add support for sankey grouping via new attribute groups [#3556]
  • Add support for sankey concentration colorscales [#3501]
  • Add support for hovertemplate for all gl3d traces, contour, heatmap, histogram*, parcats, scattercarpet and splom traces [#3530]
  • Add hovertext attribute to all traces that support hover 'text', for consistency with traces that already have an hovertext attribute [#3553]
  • Add support for layout meta templating in trace name, rangeselector, updatemenus and sliders labels as well as within hovertemplate [#3548]
  • Add support for opacity to isosurface traces [#3545]
  • Add mapbox.layers attributes: minzoom, maxzoom, line.dash and symbol.placement [#3399]

Changed

  • More consistency pass down WebGL pixel ratio to gl3d renderers, this leads to better axis line and error bar rendering on some hardwares [#3573]
  • Performance boost for isosurface trace generation [#3521]
  • Export template string regex of Lib [#3548]
  • Do no cluster points in scattergl trace with less than 1e5 data pts, this fixes reported "missing data points" scenarios [#3578]

Fixed

  • Fix selection outline clearing during cartesian axis-range relayout calls (bug introduced in 1.42.0) [#3577]
  • Fix modebar interactions on graphs with scatter3d traces with marker colorscales (bug introduced in 1.44.0) [#3554]
  • Fix axis automargin for superimposed subplots (bug introduced in 1.44.3) [#3566]
  • Fix polar angular tick labels placement [#3538]
  • Fix scattergl updates after selections for trace with on-graph text [#3575]
  • Fix responsive: true config option for graph with WebGL traces [#3500]
  • Fix modebar.bgcolor for vertical modebars with wrapped buttons [#3500]
  • Fix ohlc and candlestick auto-range computations [#3544]

[1.44.4] -- 2019-02-12

Fixed

  • Fix Plotly.react used with uirevision when removing traces [#3527]
  • Fix scattergl update calls that change the number of on-graph text elements [#3536]
  • Fix annotations SVG errors on trace-less subplots [#3534]
  • Fix ohlc and candlestick hover on blank coordinates (bug introduced in 1.43.2) [#3537]

[1.44.3] -- 2019-02-06

Fixed

  • Fix axis automargin push offset which resulted in clipped tick labels in some scenarios [#3510]
  • Fix handling of alpha channel in marker, line and error bar rgba coloring in scatter3d traces [#3496]
  • Fix subplots with multiple carpet traces each with a scattercarpet trace on top of them [#3512]
  • Fix MathJax placement in ternary aaxis titles [#3513]

[1.44.2] -- 2019-02-04

Fixed

  • Fix vertical modebars in IE11 [@3491]
  • Fix hovertemplate for traces with blank name [#3480]
  • Fix 3D grid lines and tick labels colored by rgba color with full transparency [#3494]
  • Fix white highlights rendering problems for mesh3d trace on some devices (bug introduced in 1.44.0) [#3483]
  • Fix fill.color description for table traces [#3481]

[1.44.1] -- 2019-01-24

Fixed

  • Fix mesh3d rendering on (some) mobile devices (bug introduced in 1.44.0) [#3463]
  • Fix scene camera update when changing to turntable mode when up.z is zero (bug introduced in 1.43.0) [#3465, #3475]
  • Fix react when cartesian axis scaleanchor patterns change [#3461]
  • Fix "days" entries in polish (pl) locales [#3464]
  • Remove inner function declarations in our vectorize-text that caused bundling errors for some (bug introduced in 1.43.0) [#3474]

[1.44.0] -- 2019-01-22

Added

  • Add isosurface gl3d trace type [#3438]
  • Add support for transitions from Plotly.react via new layout transition attribute [#3217]
  • Add meta layout attribute, intended for making references to strings in text templates [#3439]
  • Add support for line.color colorbars for scatter3d traces [#3384]
  • Add support for hovertemplate on scatterpolar, scatterpolargl, scatterternary, barpolar, choropleth, scattergeo and scattermapbox trace [#3398, #3436]
  • Add width attribute to box and violin traces [#3234]
  • Add support for <sup>, <sup>, <b>, <i> and <em> pseudo-html tags in extra (aka trace "name") hover labels [#3443]
  • Add support for div id as 1st arg to Plotly.makeTemplate [#3375]
  • Add config option in plot-schema JSON output [#3376]

Changed

  • Config option scrollZoom is now a flaglist (instead of a boolean), each flag corresponding to subplot types where scroll is to be enabled [#3422]
  • Use glslify@7.0.0 across all our dependencies [#3421]

Fixed

  • Fix error_(x|y|z) color attribute inheritance [#3408]
  • Fix scrollZoom: false config behavior for geo, gl3d and mapbox subplots [#3422]
  • Fix cartesian scroll zoom when responsive config option is turned on [#3424]
  • Fix cartesian scroll zoom when the page where the graph is embedded is scrollable [#3424]
  • Fix box / violin autorange edge cases [#3234]
  • Fix box / violin points hover labels on numeric positions [#3441, #3458]
  • Fix box / violin grouping algorithm for subplots with as many distinct positions as the number of traces [#3445]
  • Fix bar autorange calculations for trace with base above zero [#3452]
  • Fix bar + errorbar autorange calculations [#3452]
  • Fix lightposition behavior for mesh3d traces [#3415]
  • Fix legend valign behavior for pie traces [#3435]
  • Fix wrapped horizontal legends height edge cases [#3446]
  • Fix hover label alignment for hover labels with multi-line extra (aka trace "name") labels [#3443]
  • Fix cartesian axis domain lower limit [#3404]
  • Fix dynamic imports of lib/ trace modules [#3448]
  • Fix scl and reversescl backward-compatible logic [#3423]
  • Fix range slider borderwidth attribute description [#3453]

[1.43.2] -- 2019-01-08

First 2019 release.

Fixed

  • Fix uirevision behavior for gl3d, geo and mapbox subplots [#3394]
  • Fix reversescale behavior for surface, mesh3d and streamtube traces (bug introduced in 1.43.0) [#3418]
  • Fix modebar hover styling (bug introduced in 1.43.0) [#3397]
  • Fix horizontal box / violin hover label misalignment under hovermode:'closest' [#3401]
  • Fix ohlc and candlestick hover for traces with empty items [#3366]
  • Fix surface trace visible logic [#3365]
  • Fix mesh3d trace visible logic [#3369]

[1.43.1] -- 2018-12-21

Fixed

  • Fix z-axis auto-type for cartesian + gl3d graphs (bug introduced in 1.43.0) [#3360]
  • Fix multicategory axis coordinate sorting [#3362]
  • Fix multicategory y-axes clearance [#3354]
  • Fix contour label clipPath segments for reversed axes [#3352]
  • Fix axis autorange on double-click on graph fixedrange:true [#3351]

[1.43.0] -- 2018-12-19

Added

  • Add hovertemplate attribute to scatter, scattergl, bar, histogram, pie and sankey traces [#3126, #3265, #3284]
  • Add layout.title placement attributes x, y, xref, yref, xanchor, yanchor and pad [#3276]
  • Add support for <br>, <sup>, and <sub> pseudo-html in scatter3d and gl3d scene text [#3207]
  • Add multicategory axis type, allowing for "multi-level" categorical axis labels and category dividers with axis attributes: showdividers, dividercolor and diverwidth [#3254, #3300, #3326]
  • Add cartesian axis attribute tickson with value 'boundaries' to place categorical ticks on the category boundaries [#3254, #3275]
  • Add uirevision attributes to control the persistence of user-driven changes on the graph [#3236]
  • Add legend.valign to set the vertical alignment of the legend symbols with respect to their associated text labels [#3263]
  • Implement arrayOk textposition for scatter3d traces [#3200]
  • Add layout attributes colorscale.sequential, colorscale.sequentialminus and colorscale.diverging to set graph-wide colorscale defaults [#3274]
  • Add dragmode: false to disable all drag interactions on cartesian subplots [#3170]
  • Add plotly.js-locales npm packages that includes all official locales modules [#3223]
  • Add watermark config option to permanently show Plotly's logo in the mode bar (set to false by default) [#3280]
  • Add Finnish locale (fi) [#3325]

Changed

  • Remove "Edit in Chart Studio" button by default [#3307]
  • title attributes linked to strings are now deprecated. Please use title.text instead to fill in your title text [#3276]
  • title* attributes are new deprecated. They moved to title.*. For example, colorbar.titleside is now colorbar.title.side [#3276]
  • No longer mutate colorscale values into user data [#3341]
  • No longer mutate zmin/zmax, cmin/cmax values into user data [#3341]

Fixed

  • Fix react when updates trigger a new set of auto-margins [#3323]
  • Fix scattergl coloring when more than 255 marker colors are present [#3328, #3334]
  • More scattergl IE11 fixes [#3333, #3335]
  • Multiple surface rendering fixes [#3281]
  • Correctly default scene.dragmode to 'orbit' when camera up vector is tilted [#3256]
  • Fix hover on scatter3d traces with opacity: 1 on Ubuntu [#3301]
  • Fix console error Uncaught ax.dtick error: NaN in gl3d subplots [#3233]
  • Fix histogram hover event triggers when hovering from bar to bar [#3345]
  • Fix graphs with empty and non-empty histogram traces [#3343]
  • Fix contour labels on reversed axes [#3279]
  • Fix autocolorscale toggling [#3341]
  • Fix template support for marker.colorscale [#3341]
  • Fix scatter3D trace with mode: 'lines+markers' with line color array error [#3341]
  • Do not add <base> href to SVG clip paths during toImage [#3272]
  • Fix table scrolling that leaked into window scope [#3327]
  • Fix fills on segment-less marker-less traces [#3282]
  • Fix rangesliders on reversed-range axes [#3304]
  • Fix rangesliders on side: 'top'x-axes [#3329]
  • Fix typed array support for ohlc and candlestick traces [#3342]
  • Fix restyle with impliedEdits on trace with groupby transforms [#3236]
  • Fix editable: true drag on marker colorbars [#3236]

[1.42.5] -- 2018-11-08

Fixed

  • Fix scattergl / scatterpolargl with mode: lines and more than 1e5 pts (bug introduced in 1.42.0) [#3228]

[1.42.4] -- 2018-11-07

Fixed

  • Remove rendering artifacts from table orca PDF exports [#3220]

[1.42.3] -- 2018-11-06

Fixed

  • Fix histogram binning for typed array inputs (bug introduced in 1.42.0) [#3211]
  • Fix textfont color restyle calls for pie traces [#3214]
  • Fix textfont color editType for bar traces [#3214]
  • Fix array hoverinfo support for ohlc and candelestick [#3213]
  • Correctly list parcats hoverinfo attributes which does not support array inputs [#3213]

[1.42.2] -- 2018-11-01

Fixed

  • Fix runaway loops for scattergl lines and fill traces (bug introduced in 1.42.0) [#3199]
  • Fix size and alignment vertical modebar [#3193]
  • Fix legend item rendering for traces with typed array marker settings [#3192]

[1.42.1] -- 2018-10-31

Fixed

  • Fix IE regression introduced in 1.42.0 [#3187]
  • Fix parcats text-shadowing on dark plot_bgcolor [#3191]
  • Fix scatter3d text alignment [#3180]
  • Fix hoverinfo flags in attribute descriptions [#3158]
  • No longer coerce unused hoverlabel attribute in parcoods [#3158]
  • No longer coerce transforms attributes in traces that don't support them [#3158]

[1.42.0] -- 2018-10-29

Added

  • Add parcats (aka parallel categories) trace type [#2963, #3072]
  • Add new gl3d tick and title auto-rotation algorithm that limits text overlaps [#3084, #3104, #3131]
  • Add support for reversed-range axes on gl3d subplots [#3141]
  • Add modebar layout style attributes: orientation, bgcolor, color and activecolor [#3068, #3091]
  • Add title, titleposition and titlefont attributes to pie traces [#2987]
  • Add hoverlabel.split attribute to ohlc and candlestick traces to split hover labels into multiple pieces [#2959]
  • Add support for line.shape values 'hv', 'vh', 'hvh' and 'vhv' in scattergl traces [#3087]
  • Add handler for PlotlyConfig.MathJaxConfig: 'local' to override our default MathJax behavior which modifies the global MathJax config on load [#2994]
  • Add support for graph div as first argument for Plotly.makeTemplate and Plotly.validateTemplate [#3111, #3118]
  • Implement trace, node and link hoverinfo for sankey traces [#3096, #3150]
  • Implement per-sector textfont settings in pie traces [#3130]

Changed

  • Use new Plotly logo in "Produced with Plotly" modebar button [#3068]
  • Improve histogram autobin algorithm: allow partial bin specification, deprecate autobin(x|y) attributes, force stacked/grouped histograms to match size and have compatible start value [#3044]
  • Count distinct values for category and date axis auto-type, which improves the detection of "NaN" string values in numerical data [#3070]
  • Improve bar and pie textfont color inheritance [#3130]
  • Improve splom first-render, axis range relayout and marker restyle performance [#3057, #3161]
  • Make splom xaxes and yaxes list always have same length as the trace dimensions regardless of their partial visibilities [#3057]
  • Improve axis overlaying documentation [#3082]

Fixed

  • Fix gl3d subplots on tablets [#3088]
  • Fix responsive behavior under flexbox and grid CSS [#3056, #3090, #3122]
  • Fix relayout calls turning back autosize on [#3120]
  • Fix MathJax rendering (for recent versions of MathJax) [#2994]
  • Fix scattergl update on graphs with fractional computed dimensions [#3132]
  • Fix scattergl symbols in MS Edge [#2750]
  • Fix scattergl selections on overlaying axes [#3067]
  • Fix scattergl tozero fills with bad values [#3087, #3168]
  • Fix scattergl fill layer ordering [#3087]
  • Fix scattergl lines on reversed-range axes [#3078]
  • Fix axis auto-type routine for boolean data [#3070]
  • Fix splom axis placement when the diagonal is missing [#3057]
  • Fix line restyle calls on parcoords traces [#3178]
  • Fix parcoods rendering after hovermode relayout calls [#3123]
  • Fix WebGL warnings for scatter3d traces with blank text items [#3171, #3177]
  • Fix WebGL warnings for scatter3d trace with empty lines [#3174]
  • Fix rendering of scatter3d lines for certain scene angles [#3163]
  • Fix handling of large pad values in sankey traces [#3143]
  • Fix scatterpolargl to scatterpolar toggling [#3098]
  • Fix scatterpolargl axis-autorange padding [#3098]
  • Fix bar text position for traces with set base [#3156]
  • Fix bar support for typed arrays for width and offset attributes [#3169]
  • Fix aggregate transforms with bad group values [#3093]
  • Fix transforms operating on auto-invisible traces [#3139]
  • Fix templating for polar and carpet axes [#3092, #3095]
  • Ignore invalid trace indices in restyle and update [#3114]
  • Fix grid style relayout calls on graph with large splom traces [#3067]
  • Fix logging on some old browsers [#3137]
  • Remove erroneous warning WARN: unrecognized full object value when relayouting array containers [#3053]

[1.41.3] -- 2018-09-25

Fixed

  • Fix handling of hover text in barpolar traces [#3040]
  • Fix scatterpolar[gl] text placement in hover label [#3040]
  • Fix pie trace support for individual stroke width values [#3030]
  • Fix handling of CSS max-width and max-height in auto-size routine [#3033]
  • Rotate hover labels when hovermode: 'y' and a single trace produces multiple labels [#3043]
  • Rotate hover labels when hovermode: 'closest' and multiple labels are generated including one from an horizontal trace [#3043]
  • Fix hover label coloring on white bgcolor [#3048]
  • Do not coerce nor validate polar?.bar* attributes on subplots w/o visible barpolar traces [#3023]
  • Fix legacy polar attribute descriptions [#3023]

[1.41.2] -- 2018-09-19

Fixed

  • Fix two-sided zoombox -> double-click -> one-sided zoombox behavior [#3028]

[1.41.1] -- 2018-09-18

Fixed

  • Bring back hover labels on "touch" hover (bug introduced in 1.29.0) [#2997]
  • Fix MathJax rendering in legends [#3018]
  • Fix fill and layering for multiple stack-groups and unstacked scatter traces [#3005]
  • Fix removal of scatter traces with set stackgroup [#3005]
  • Fix stacked area gap insertion edge case [#3017]
  • Fix zeroline logic for splom-generated axes [#3015]
  • Fix error_x and error_y on scatter3d w/o error_z [#3011]
  • Fix scatter3d error bars on log axes [#2992]
  • Fix Plotly.react when updating geo axis dtick [#3016]
  • Fix polar.hole=1 case [#3021]
  • Fix handling of polar.sector that span more than 360 degrees [#3021]

[1.41.0] -- 2018-09-12

Added

  • Enable selection by clicking on points via new layout attribute clickmode and flag 'select' [#2944]
  • Add stacked area charts via new attributes stackgroup and stackgaps in scatter traces [#2960]
  • Add barpolar traces - which replace and augment area traces [#2954]
  • Add polar.hole to punch hole at the middle of polar subplot offsetting the start of the radial range [#2977, #2996]
  • Add an 'inner' radial axis drag box on polar subplots [#2977]
  • Add {responsive: true} plot config option [#2974]
  • Emit plotly_webglcontextlost event on WebGL context lost [#2986]
  • Support all numbered HTML entities (decimal and hex) in text elements [#2932]
  • Add Welsh (cy) locale [#2945]

Changed

  • Attribute meta information is now stripped be stripped out of bundles (made with bundlers that support browserify transforms) by default [#1584]
  • Draw polar axis ticks above polar axis lines [#2977]
  • Improve ordering of trace hover labels for matching positions [#2960]
  • Speed polar subplot radial drag interactions [#2954]
  • Improve pseudo-html conversion performance [#2932]
  • Bump regl-splom requirement to ^1.0.4 [#2956]
  • Bump glslify requirement to ^6.3.1 [#2990]
  • Use gl-text instead of @etpinard/gl-text [#2956]

Fixed

  • Fix scatter ordering in inner SVG <g> on some restyle calls [#2978]
  • Fix cartesian axis autorange edge cases [#2960]
  • Fix double-decoding of some HTML entities in text nodes [#2927]
  • Fix scattergl line traces rendered after non-line traces [#2990]
  • Fix legend positioning on graphs with very large margins [#2983]
  • Fix rendering of ternary subplots fix with showticklabels: false [#2993]
  • Fix show/hide updates of tick and tick labels on ternary subplots [#2993]
  • Fix handling of multi-selections in ternary subplots [#2944]
  • Fix sankey hover under hovermode: false [#2949]
  • Fix sankey positioning for non-default domain.x values [#2984]
  • Fix type: 'date' polar radial axes [#2954]
  • Fix send-to-cloud modebar buttons on graphs with typed arrays [#2995]
  • Fix handling of custom transforms that make their own data arrays in Plotly.react[#2973]
  • Fix missing violin and colorbar attributes in gd._fullData [#2850]

[1.40.1] -- 2018-08-22

Changed

  • Bump browserify to v16 [#2923]
  • Bump glslify to v6.2.1 [#2923]
  • Use color-normlize@1.3.0 throughout code base [#2923]

Fixed

  • Fix logic for hiding zero lines when they conflict with axis lines [#2936]
  • Fix exponentformat values 'e' and 'E' on log axes [#2921]
  • Fix dynamic layer ordering of heatmap and carpet traces [#2917]
  • Fix Plotly.downloadImage when using graph id or figure object as first argument [#2931]
  • Fix regl-based rendering when WebGL buffer dimensions don't match canvas dimensions [#2939]

[1.40.0] -- 2018-08-16

Added

  • Allow contour, contourcarpet and histogram2dcontour to have corresponding legend items using showlegend [#2891, #2914]
  • Add scatterpolar and scatterpolargl attributes r0, dr, theta0 and dtheta [#2895]
  • Add layout attributes piecolorway and extendpiecolors for more control over pie colors [#2870]
  • Add splom attribute dimensions[i].axis.type to easily override axis type in splom-generated axes [#2899]
  • Add support for on-graph text in scatterpolargl traces [#2895]

Changed

  • Use derequire browserify plugin to make bundling distributed npm package with browserify possible [#2905]
  • Speed up cartesian axis autorange edits (and thus double-click interactions) [#2823]
  • Do not clear WebGL context when scattergl graph has no visible:true traces, which speeds up e.g. legend interactions [#2860]
  • Compute data extremes per trace, which improves performance in some cases [#2860]
  • Use <linearGradient> to render filled colorbars [#2910, #2914]
  • Rename trace module setPositions methods crossTraceCalc [#2868]
  • Use regl@1.3.7 [#2863]

Fixed

  • Fix scalar marker.size bounds in legend items [#2840]
  • Fix positioning of legend symbols for traces with fills [#2891]
  • Fix scattergl select -> double-click -> pan behavior [#2815]
  • Fix scattergl marker for IE11 [#2863]
  • Fix inheritance of explicit pie colors by later traces [#2870]
  • Fix layer ordering on graphs with multiple contour traces with heatmap coloring [#2891]
  • Fix layer ordering on visible toggling for contour-like traces [#2891]
  • Fix cases where colorbars would be drawn over its bounds [#2910]
  • Fix tickwidth edits on ohlc traces [#2823]
  • Fix labels on splom-generated axes with categorical data [#2899]
  • Fix handling of splom dimensions on axes of conflicting types [#2899]
  • Fix splom trace visible edits [#2860]
  • Fix splom select -> double-click -> pan behavior [#2899]
  • Fix scatterpolargl behavior during angular and radial drag interactions [#2888]
  • Fix handling of auto date ticks below our 100 microseconds limit [#2912]
  • Fix scatter3d attributes which had incorrectly labeled textposition and textfont.family as arrayOk and contained unimplemented line.showscale and line.colorbar [#2879]
  • Fix scattergl and scatterpolargl attribute declarations for hoveron [#2895]

[1.39.4] -- 2018-08-02

Fixed

  • Fix tenths of milliseconds handling in old numeric date data (bug introduced in 1.21.0) [#2847]
  • Fix yaxis overlaying yaxis2 layouts (bug introduced in 1.39.3) [#2857]

[1.39.3] -- 2018-07-25

Fixed

  • Fix overlaying subplot configuration relayouts [#2831]
  • Fix trace toggling from position-editable horizontal legends [#2829]
  • Fix [un]selected.marker.opacity settings on scattergeo traces [#2827]
  • Fix selections on some Robinson projections [#2827]

[1.39.2] -- 2018-07-16

Fixed

  • Fix scattergl selection after resize relayouts [#2801]
  • Fix scattergl layout replot edits [#2793]
  • Fix cartesian axis range animations (bug introduced in 1.37.0) [#2788]
  • Fix contour labels that require thousands suffixes [#2806]
  • Fix 'legendonly' legend items link to array marker.symbol [#2816]
  • Fix handling of duplicate points under line.simplify [#2814]
  • Fix transform removal via Plotly.react [#2805]
  • Fix out-of-subplot scroll zoom on some geo projection types [#2811]
  • Fix hover label in RTL pages [#2790]
  • Reduce minified bundle back to their 1.39.0 sizes [#2792]

[1.39.1] -- 2018-07-09

Fixed

  • Fix mapbox subplots in our minified bundles (bug introduced in 1.39.0) [#2789]
  • Fix box and violin traces inner parts removal (bug introduced in 1.37.0) [#2785]

[1.39.0] -- 2018-07-05

Added

  • Add distributed npm packages for the main plotly.js bundle and all our partial bundles for easy installation and bundling [#2670]
  • Add template machinery along with helpers methods Plotly.makeTemplate and Plotly.validateTemplate [#2764]
  • Add 3D streamtube traces [#2658]
  • Add support for on-graph text in scattergl traces [#2737, #2783]
  • Add gridshape attribute to polar subplots with values 'circular' (the default) and 'linear' (to draw polygon grids) [#2739]
  • Add 'range' and 'change' aggregate transform functions [#2764]
  • Add visible attribute to rangeselector and updatemenu buttons, slider steps and mapbox layout layers as well as tickformatstops items [#2761]
  • Add support for colorbar linked to marker.color values for splom, scatterpolar and scatterpolargl traces [#2681]
  • Revamp icon settings in custom mode bar buttons, allowing users to specify their own dimensions and SVG transforms [#2762]
  • Add plotlyServerURL config option [#2760]
  • Added no-WebGL warnings for graphs with scattergl, scatterpolargl, splom and parcoords traces [#2697]

Changed

  • plotly_afterplot is now emitted after all edit types [#2773]
  • Trace uid is no longer mutated into user trace objects [#2681]
  • No longer add marker.line in scattermapbox fullData [#2766]
  • Use regl@1.3.6 [#2694]
  • Use mapbox-gl@0.45.0 [#2709]

Fixed

  • Fix Plotly.react's handling of changing auto-margins [#2681]
  • Make plotting/updating WebGL-based traces fail gracefully when WebGL isn't supported [#2697]
  • Fix mapbox layout layer updates [#2734]
  • Fix mapbox event inconsistencies [#2766]
  • Correctly emit plotly_relayout at end of scroll on mapbox subplots [#2709]
  • Fix scatter3d scalar hovertext handling [#2698]
  • Fix line decimation for segments crossing the viewport [#2705]
  • Fix surface trace contours when first level has length zero [#2712]
  • Fix contour(x|y|z).highlight partial settings [#2712]
  • Fix old date timezone precision in Chrome 67+ [#2747]
  • Fix Plotly.validate for attribute with trailing numbers (e.g. x0, y1) [#2761]
  • Fix x-only zoom moves when xaxis.fixedrange: true[#2776]
  • Fix colorbar edits for parcoords and histogram traces [#2681]
  • Fix bandwidth for single-value violins [#2775]
  • Sanitize margin after 'autosize' relayouts [#2758]
  • Make Plots.resize work when layout attribute is gone from graph div [#2710]
  • Fix colorscale attribute descriptions [#2658]

[1.38.3] -- 2018-06-11

Fixed

  • Fix cone axis padding when under sizemode: 'absolute' [#2715]
  • Fix cone scaling on irregular grids [#2715]
  • Fix cone sizemode: 'absolute' scaling and attribute description [#2715]
  • Improve cone hover picking [#2715]
  • Fix exception during histogram cross-trace computation [#2724]
  • Fix handling of custom transforms that make their own data arrays [#2714]

[1.38.2] -- 2018-06-04

Fixed

  • Fix bar text removal (bug introduced in 1.36.0) [#2689]
  • Fix handling number 0 in hover labels and on-graph text [#2682]

[1.38.1] -- 2018-05-29

Fixed

  • Fix transforms on scattergl traces [#2677]
  • Fix marker.line.width scaling in scattergl traces [#2677]
  • Fix [un]selected.marker.size scaling in scattergl traces [#2677]
  • Create two not three WebGL contexts for scattergl/splom graphs (bug introduced 1.36.0) [#2656]
  • Fix z updates of interpolated values on heatmap and contour traces with gaps [#2657]
  • Fix select/pan double-click behavior when relayout from one another (bug introduced in 1.36.0) [#2668]
  • Fix shift selection behavior after pan/scroll (bug introduced in 1.36.0) [#2676]

[1.38.0] -- 2018-05-23

Added

  • Add 3D cone traces to visualize vector fields [#2641, #2647]
  • Add ability to interactively change length and rotate line shapes [#2594]
  • Add toImageButtonOptions config object to override to-image mode bar button options [#2607]
  • Add Brazilian Portuguese (pt-br) locale [#2622]
  • Add Italian (it) locale [#2632]

Changed

  • Improve cartesian scroll and pan (mostly) performance for graphs with many marker or/and text nodes [#2623]
  • Improve splom first render and axis-range relayout performance [#2628]
  • Improve multi-axis axis-range relayout performance by updating minimal set of axes instead of all axes [#2628]
  • Use "grab" cursor to denote when annotations and shapes are draggable [#2594]
  • Ignore zero and negative link values in sankey traces [#2629]
  • Ignore unused and malformed links sankey traces without logging [#2629]

Fixed

  • Fix scattergl error bar computations when input value are numeric strings [#2620]
  • Fix scattergl error bar computations for x0/dx and y0/dy coordinates [#2620]
  • Fix violin kde span edge cases [#2650]
  • Make sankey traces accept numeric strings [#2629]
  • Fix axis range edits under axis constraints [#2620]
  • Fix "sloppy click" event emission during cartesian zoom [#2649]
  • Fix layout grid validation which lead to exceptions [#2638]
  • Fix parcoords rendering in old Safari version [#2612]
  • Link to https://get.webgl.org instead of http version in no WebGL message [#2617]

[1.37.1] -- 2018-05-02

Fixed

  • Fix Plotly.react when adding/removing traces (bug introduced in 1.37.0) [#2603]

[1.37.0] -- 2018-05-01

Added

  • Add plotly_legendclick and plotly_legenddoubleclick events [#2581]
  • Add Swahili (sw) locale [#2526]

Changed

  • Improve cartesian trace update and removal by using more d3-iomatic patterns. This results in some performance improvements during redraws [#2574]
  • Our internal Lib.nestedProperty no longer prunes empty containers in gd.data, gd.layout, gd._fullData and gd._fulllayout. We made this change to clean up some of the Plotly.react internals. This also lead to a slight performance boost [#2577]

Fixed

  • Fix Plotly.react's handling of transformed traces [#2577]
  • Fix Safari support for scattergl and splom traces [#2593]
  • Fix scattergl point clustering edge cases [#2593]
  • Fix scattergl selection after double-click on graphs with more than 1e5 points [#2593]
  • Fix artificial number of lines limit in scattergl traces [#2568]
  • Fix typed array support in color array in scattergl traces [#2596]
  • Fix typed array support for splom traces [#2596]
  • Make scatter and scattercarpet coexist on same subplot [#2574]
  • Fix incorrect fallback border color for axis common hover labels [#2557]
  • Fix handling of blank editable legend items [#2587]
  • Fix spikelines positioning in Firefox [#2590]
  • Fix Plotly.react modebar updates when the locale changes [#2592]
  • Fix scatter selection performance regression (dating back to 1.32.0) [#2583]
  • Fix plotly_beforeplot and plotly_beforehover event handlers when attached with gd.once [#2581]

[1.36.1] -- 2018-04-18

Fixed

  • Fix scattergl in dist and CDN bundles (due to browser-pack-flat discrepancy introduced in 1.36.0) by removing browser-pack-flat from our bundling pipeline [#2572]

[1.36.0] -- 2018-04-17

Added

  • Add splom (aka scatter plot matrix) traces [#2505]
  • Add multi-selection and click-to-select on parcoords axes [#2415]
  • Add selection and improve legend items for ohlc and candlestick [#2561]
  • Add 'fixed size' layout shapes through new shape attributes xsizemode, ysizemode, xanchor and yanchor [#2532]
  • Add layout attribute selectdirection to restrict select-box direction [#2506]
  • Add support for selections on graphs with range sliders [#2561]
  • Add support for ragged table inputs [#2511]
  • Add Czech (cs) locale [#2483]
  • Add Japanese (ja) locale [#2558]

Changed

  • Multiple performance improvements for cartesian subplots, most noticeable on graphs with many cartesian subplots [#2474, #2487, #2527]
  • Use new gl-mesh3d version that attempts to make lighting results less hardware-dependent [#2365]
  • New and improved point-clustering algorithm for scattergl [#2499]
  • Improved regl-line2d component [#2556]

Fixed

  • Fix memory leak in parcoords traces [#2415]
  • Fix scattergl selectedpoints clearance under select/lasso drag modes [#2492]
  • Fix scattergl horizontal lines rendering [#2564]
  • Fix scattergl unselected marker opacity for array marker opacity traces [#2503]
  • Fix scattergl hover over data gaps [#2499]
  • Fix ohlc on category axes [#2561]
  • Fix inconsistencies in ohlc and candlestick event data [#2561]
  • Fix hover text for candlestick traces [#2561]
  • Fix scattermapbox selections for traces with data gaps [#2513]
  • Fix table border cases that got previously cut off [#2511]
  • Fix box traces with one jittered outlier [#2530]
  • Fix cliponfalse: false on reversed axes [#2533]
  • Fix buggy plot_bgcolor rendering when updating axis overlaying attribute [#2516]
  • Fix buggy Plotly.react behavior for carpet, contourcarpet, scattercarpet, table and x/y/z column heatmap traces [#2525]
  • Fix buggy Plotly.react behavior for ohlc and candlestick traces [#2561]
  • Fix ordered categories on graphs with visible: false traces [#2489]
  • Fix ordered categories in multi-subplot graphs [#2489]
  • Fix inconsistencies when ordering number and numeric string categories [#2489]
  • Fix format days in English locale [#2490]
  • Handle HTML links with encoded URIs correctly in svg text labels [#2471]

[1.35.2] -- 2018-03-09

Fixed

  • Ping mapbox-gl to 0.44.1 so that users on fresh npm install do not get the wrong mapbox-gl version message [#2467]
  • Fix swapping between scatter and scatter3d traces and other potential problems caused by incorrect axis constraints resetting [#2465]

[1.35.1] -- 2018-03-08

Fixed

  • Fix scatterpolar in dist and CDN bundles (due to browser-pack-flat discrepancy introduced in 1.35.0) [#2458]
  • Fix removing and adding scatter(gl) as not the first module [#2455]
  • Ensure we don't draw ticks if there are none to draw [#2454]

[1.35.0] -- 2018-03-07

Added

  • Add automargin attribute to cartesian axes which auto-expands margins when ticks, tick labels and/or axis titles do not fit on the graph [#2243]
  • Add support for typed arrays as data array inputs [#2388]
  • Add layout grids attribute for easy subplot generation [#2399]
  • Implement cliponaxis: false for bar text [#2378]
  • Add opposite axis attributes for range slider to control y axis range behavior [#2364]
  • Generalize hoverdistance and spikedistance for area-like objects [#2379]
  • Bring scattergl auto-range logic to par with SVG scatter [#2404]
  • Add selected/unselected marker color size support to scattermapbox traces [#2361]

Changed

  • Remove all circular dependencies in our src/ directory [#2429]
  • Build our CDN bundles with browser-pack-flat browserify plugin [#2447]
  • Bump mapbox-gl to v0.44.0 [#2361]
  • Bump glslify to v6.1.1 [#2377]
  • Stop relinking customdata, ids and any matching objects in gd._fullLayout during Plots.supplyDefaults [#2375]

Fixed

  • Fix buggy auto-range / auto-margin interaction leading to axis range inconsistencies on redraws (this bug was mostly noticeable on graphs with legends) [#2437]
  • Bring back scattergl lines under select/lasso dragmode (bug introduced in 1.33.0) [#2377]
  • Fix scattergl visible toggling for graphs with multiple traces with different modes (bug introduced in 1.33.0) [#2442]
  • Bring back spikelines for traces other than scatter (bug introduced in 1.33.0) [#2379]
  • Fix Plotly.Fx.hover acting on multiple subplots (bug introduced in 1.32.0) [#2379]
  • Fix range slider with stacked y axes positioning (bug introduced in 1.32.0) [#2451]
  • Fix scattergl color clustering [#2377]
  • Fix Plotly.restyle for scattergl fill [#2377]
  • Fix multi-line y-axis label positioning [#2424]
  • Fix centered hover labels edge cases [#2440, #2445]
  • Fix hover labels in bar groups in compare mode [#2414]
  • Fix axes and axis lines removal [#2416]
  • Fix auto-sizing in Plotly.react [#2437]
  • Fix error bars for Plotly.react and uneven data arrays [#2360]
  • Fix edits for date-string referenced annotations [