# plotly.js changelog
For more context information, please read through the
[release notes](https://github.com/plotly/plotly.js/releases).
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.
## [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 `texttemplate`formatting 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` mising 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 `
` 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
### 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 `` 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 `` 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 `` 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 ``, ``, ``, `` and `` 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 `
`, ``, and `` 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 `` 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 visiblities [#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 `` 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 `` 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 [#2368]
- Fix `z` hover labels with exponents [#2422]
- Fix yet another histogram edge case [#2413]
- Fix fall back for contour labels when there's only one contour [#2411]
- Fix `scatterpolar` category angular period calculations [#2449]
- Clear select outlines on mapbox zoomstart [#2361]
- Fix legend click to causes legend scroll bug [#2426]
## [1.34.0] -- 2018-02-12
### Added
- Add `Plotly.react`, a new do-it-all API method that creates and update graphs
using the same API signature [#2341]
- Add constraint-type contours to `contour` traces [#2270]
- Add `notched` and `notchwidth` attributes to `box` traces [#2305]
- Add localization machinery to auto-formatted date axis ticks [#2261]
- Add support for `text` in `mesh3d` traces [#2327]
- Add support for scalar `text` in `surface` traces [#2327]
- Make mode bar for graphs with multiple subplot types more usable [#2339]
- Add `npm@5` package-lock file [#2323]
### Changed
- All of gl-vis dependencies now use `gl-shader@4.2.1` [#2293, #2306]
- All our dependencies and source now use `glslify@6.1.0` [#2326]
### Fixed
- Prevent page scroll on mobile device on `gl2d` and `gl3d` subplots [#2296]
- Fix multi-marker `scattergl` selection errors (bug introduced in `1.33.0`) [#2295]
- Fix `Plotly.addTraces` in `scattergl` selection call backs (bug introduced in `1.33.0`) [#2298]
- Fix trace `opacity` restyle for `scattergl` traces (bug introduced in `1.33.0`) [#2299]
- Fix `scattergl` handling of `selectedpoints` across multiple traces [#2311]
- Fix `scattergl` horizontal and vertical line rendering [#2340]
- Fix restyle for scalar `hoverinfo` for `scatter3d`, `surface` and `mesh3d` traces [#2327]
- Fix `table` when content-less cells and headers are supplied [#2314]
- Fix `Plotly.animate` for attribute nested in `dimensions` containers [#2324]
- Fix `hoverformat` on `visible: false` cartesian axes (bug introduced in `1.33.0`) [#2329]
- Fix handling of double negative translate transform values [#2339]
- Fix compare `hovermode` fallback for non-cartesian subplot types [#2339]
- Fix animation error messages when overriding and ignoring frames updates [#2313]
## [1.33.1] -- 2018-01-24
### Fixed
- Fix selection on `scattergl` plots with >20k points [#2266]
- Update Spanish localization with new strings [#2268]
- Fix test_dashboard overly rigid restriction so parcoods works there [#2273]
- Make `layout.colorway` compatible with `sankey` traces [#2277]
- Fix click events on `fixedrange` subplots [#2279]
- Remove ghost fill when trace data is emptied out [#2280]
- Fix resizing of new `scattergl` plots [#2283]
- Fix positioning of carpet axis titles for `cheaterslope` edge cases [#2285]
- Fix coloring and hover info for heatmaps and contour maps with nonuniform bins [#2288]
## [1.33.0] -- 2018-01-18
### Added
- Completely rewritten `scattergl` trace type using `regl` [#2258]
- Completely rewritten polar chart renderer accompanied by new
`scatterpolar` and `scatterpolargl` trace types [#2200]
- Add the ability to draw layout images and layout shapes on subplot
with `scattergl` traces [#2258]
- Add `fill` capabilities to `scattergl` traces [#2258]
- Add `spikedistance`, `hoverdistance` and `skipsnap` for more customizable
spikes and hover behavior on cartesian subplots [#2247]
- Add official Spanish translation (locale `es`) [#2249]
- Add official French translation (locale `fr`) [#2252]
- Add locale machinery to annotation _new text_ placeholder [#2257]
### Changed
- Old polar trace types (`scatter` with `(r,t)` coordinates,
`bar` with `(r,t)` coordinates and `area`) are now deprecated.
### Fixed
- Fix `gl2d` tick label on pan interaction regression [#2258]
- Fix `candlestick` hover label regression (bug introduced in v1.32.0) [#2264]
- Fix several `gl2d` axis related bugs with new regl-based `scattergl` [#2258]
See full list under the On-par gl2d milestone https://github.com/plotly/plotly.js/milestone/3
- Fix several polar bugs with `scatterpolar` [#2200].
See full list under the On-par polar milestone https://github.com/plotly/plotly.js/milestone/2
- Fix `scattergl` marker.colorscale handling [#2258]
- Fix ternary relayout calls involving axis tick styles and titles [#2200]
- Fix decimal and thousands settings in `de` locale [#2246]
- Make scroll handler _passive_, removing those annoying console warnings [#2251]
## [1.32.0] -- 2018-01-11
### Added
- Add localization machinery including an official German translation (locale `de`) [#2195, #2207, #2210, #2232, #2217]
- Add `violin` trace type [#2116]
- Add `selected` and `unselected` attribute containers to customize selection states [#2135]
- Add support for multi-selections [#2140]
- Add layout `colorway` to custom the trace-to-trace color sequence [#2156]
- Add `tickformatstops` to set tick format per cartesian axis range [#1965]
- Add hover labels and selections to box points [#2094]
- Histogram events & bin hover label improvements [#2113]
- Add support for aggregation in `pie` traces [#2117]
- Add annotations `startarrowhead`, `arrowside`, `startarrowsize` and `startstandoff` attributes [#2164]
- Add `zhoverformat` to format `z` values in `heatmap`, `contour` and 2d histogram traces [#2106, #2127]
- Add `marker.opacity` to bar traces [#2163]
- Add `Cividis` colorscale [#2178]
- Implement transform inverse mapping [#2126, #2162]
### Changed
- Selections are now persistent [#2135]
- Make subplot initialization and removal more robust and consistent [#2227]
- Share WebGL context between `gl2d` and `parcoords` subplots [#2159, #2238]
- Rename _Save and edit plot in cloud_ mode bar button _Edit in Chart Studio_ [#2183]
- Minify bundles using `minify-stream` instead of UglifyJS2 [#2187]
- Update header for new year 2018 [#2231]
- Remove `type="text/javascript"` from `