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.
- Add aggregate transform [#1924]
- Add
constraintextattribute for bar traces [#1931] - Add axis
layerattribute to ternary axes [#1952] - Add cross-trace matching auto-binning logic to histogram traces [#1944]
- Add
data/layout/configapi toPlotly.toImageto generate a static graph without having to render an interactive graph first [#1939] - Add
nameformatattribute togroupbytransforms to set pattern by which grouped traces are named [#1919]
- Fix hover label exponents [#1932, #1949]
- Fix scatter fill with isolated endpoints [#1933]
- Fix parcoords axis tick scale when
ticktextis unordered [#1945] - Fix sankey with 4 multi-links or more [#1934]
- Fix exponent labels beyond SI prefixes [#1930]
- Fix image generation for marker gradient legend items [#1928]
- Fix parcoords image generation when multiple parcoords graphs are present on page [#1947]
- Ignore bare closing tags in pseudo-html string inputs [#1926]
- Fix
groupby/filterinteractions when filter includestargetdata [#1892]
- Add fallback for
ArrayBuffer.isViewfixing gl2d and gl3d rendering in environments that don't support it (e.g. RStudio) [#1915]
- Fix axis line rendering when
showticklabelsis false (bug introduced in 1.29.0) [#1910] - Fix histogram auto bin restyle [#1901]
- Fix colorbar edge case that caused infinite loops [#1906]
- Add touch interactions to cartesian, gl2d and ternary subplots including for select and lasso drag modes [#1804, #1890]
- Add support for contour line labels in
contourandcontourcarpettraces [#1815] - Add support for select and lasso drag modes on
scattermapboxtraces [#1836] - Add double click interactions to mapbox subplots [#1883]
- Add reset view and toggle hover mode bar buttons to mapbox subplots [#1883]
- Add support for array
marker.opacitysettings inscattermapboxtraces [#1836] - Add
namelengthlayout and trace attribute to control the trace name's visible length in hover labels [#1822] - Add
cliponaxisattribute toscatterandscatterternarytraces to allow markers and text nodes to be displayed above their subplot's axes [#1861] - Add axis
layerattribute with'above traces'and'below traces'values [#1871] - Add granular
editableconfiguration options [#1895] - Expanded traces generated by transforms now have unique colors [#1830]
- Fix axis line width, length, and positioning for coupled subplots [#1854]
- Fix alignment of cartesian tick labels [#1854]
- Fix rendering and updates of overlaying axis lines [#1855]
- Fix hover for 2D traces with custom colorbar
tickvals[#1891] - Fix hover and event data for
heatmapglandcontourgltraces [#1884] - Fix event data for
pieandsankeytraces [#1896] - Fix drag mode
'pan'in IE and Edge [#1871] - Fix bar, error bar and box point scaling on scroll zoom [#1897]
- Fix shading issue in
surfacetrace in iOS [#1868] - Fix lasso and select drag modes for
scatterternarytraces [#1831] - Fix cases of intersecting
contourlines on log axes [#1856] - Safer construction of
popupclick handler [#1888] - Fix animation of annotations, shapes and images [#1315]
- Fix histogram bin computation when more than 5000 bins are needed [#1887]
- Fix tick label rendering when more than 1000 labels are present [#1898]
- Fix handling of empty
transformsitem [#1829]
- Fix deselect on double-clicking for gl2d traces [#1811]
- Fix
Plotly.purgefor gl2d and gl3d subplots (bug introduced in 1.28.0, leading to memory leaks) [#1821] - Fix hover labels for
ohlcandcandlesticktraces (bug introduced in 1.28.0) [#1808] - Fix event data for
scattergeotraces [#1819] - Fix support of HTML entity number in pseudo-html inputs [#1820]
- Fix IE rendering error (
node.childrendoesn't work on SVG nodes in IE) [#1803]
- Fix
scatterglselected points. Points do not disappear after zoom any more in fast mode [#1800]
- Allow constraints by domain on cartesian axes using new axis attributes:
contrain: 'domain'andcontraintoward[#1767] - Add gl3d annotations [#1638, #1786]
- Add support for lasso and select
dragmodeonscattergltraces [#1657] - Add 48 new
scatterglmarker symbols (for total of 56) [#1781] - Add array support for
hoverinfo[#1761] - Add animation support for
fillcolorattribute [#1722] - Add
colorscaleattributes tomesh3dtraces [#1719] - Add support for target and popup attributes pseudo-html text links [#1726]
- Add per-
directionupdatemenu dropdown arrows [#1792] - Add
executeattribute to sliders and updatemenus to skip method calls while still triggering associated events [#1700] - Add
skipvalue to themethodattribute for sliders and updatemenus which acts as a no-op [#1699]
- Include values of all array attributes in hover/click/select event data
including
idsandcustomdata[#1770] - Make gl2d axis tick labels on-par with SVG versions [#1766]
- Build SVG text nodes directly instead of using
DOMParser[#1783] - Rework transform style into array syntax [#1794]
- Recompute hover on click to increase click robustness [#1646]
- Miscellaneous performance improvements including improved bounding box caching and adding a few short-circuit [#1772, #1792]
- Fix pan/zoom for layout component linked to
categoryaxes [#1748, #1791] - Fix non-
lineargl3d axis range settings [#1730] - Fix
ohlcandcandlestickwhen open value equals close value [#1655] - Fix annotations positioning when MathJax symbols are present [#1788]
- Fix array values in event data for transformed traces [#1717, #1727, #1737]
- Fix relayout event data for gl3d camera interactions [#1732]
- Fix scatter markers and text nodes linked to
idsordering on updates [#1709] - Fix
Plotly.validatefor dynamic enumerated attribute (e.g. axisanchor,overlaying) [#1769] - Fix pseudo-html handling in sliders, updatemenus, range-sliders, range-selectors and carpet traces [#1792]
- Fix annotation bounding box and arrow heads in IE [#1782]
- Fix svg exports in IE for graphs with multiple clip paths [#1740]
- Fix
sankeypositioning in IE [#1723, #1731, #1729, #1735] - Fix relative links in IE [#1715]
- Suppress render warning in gl3d graphs with error bars [#1718]
- Fix text box positioning on scrolled windows (bug introduced in 1.27.0) [#1683, #1690]
- Fix styling over links in annotation text [#1681]
- Fix
mesh3dwithvertexcolorcoloring [#1686] - Fix
sorttransform with setcategoryarray[#1689] - Fix
scattertext node data join [#1672] - Fix
plotpromise resolution in graphs with layout images in IE11 [#1691]
- Sankey diagram with new trace type
sankey[#1591, #1664] - Add
hoverlabeltrace and layout attributes to customize hover label colors and fonts [#1582] - Add
marker.gradientattributes forscatter,scattergeo,scatterternaryandscattercarpettraces [#1620] - Add
sorttransform [#1609] - Add
preservegapsfiltertransform attribute [#1589] - Add
!=(not equal)filtertransform operation [#1589] - Add
labelfont,tickfontandrangefontattributes forparcoordstraces [#1624] - Pass DOM mouse event on
plotly_clickannotationsevents [#1652]
- Performance optimization for range sliders and Drawing cache [#1585]
- Fix
scatterglmarker symbol positioning (bug introduced in 1.25.0) [#1633] - Fix gl2d zoom where two clicks would trigger a zoom box (bug introduced 1.26.0) [#1632]
- Fix legend double click handler for
carpettraces [#1636] - Fix
restyleforscattercarpetfor style attributes with array support [#1641] - Fix
restylefor array layout components when more than 10 items are present [#1639] - Fix select-box and lasso selections so that they don't include bad-data items [#1656]
- Fix
restylefor contourzminandzmax[#1653] - Fix
scattertext node transitions [#1616, #1626]
- Fix
piefill opacity [#1615] - Fix
contour.valuedeclaration forcontourcarpettrace [#1612]
- Carpets plots with new trace types:
carpet,scattercarpetandcontourcarpet[#1595, #1596] - Axis constraints with new cartesian and gl2d axis attributes
scaleanchorandscaleratio[#1522] - Annotations
width,height,valignandxshiftandyshiftattributes [#1551, #1590] - Hover text over annotations with
hovertextandhoverlabelattributes [#1573, #1590] - Add
hovertextattribute to trace types that can showtextvalues on graph to allow setting hover text independently [#1523] - Add
spikesinteractions functionality to cartesian subplots [#1461] - Pass mouse DOM mouse event during
plotly_click,plotly_hoverandplotly_unhover[#1505] - Add
visibleattribute to cartesian and gl3d axes to easily make them disappear [#1595, #1599] - Make
deleteFrames(gd)delete all frames [#1531]
- Lock down
gl-plot3dandmatrix-camera-controllerdependencies to include latest memory management improvements [#1570] - Performance improvements for
categoryaxes [#1544] - Skip overhead for
showLinkconfig option is false [#1557] - Optimize scatter trace sorting on updates [#1555]
- Lock down
gl-scatter2d-sdfdependency to1.3.4while waiting for bug fix there [#1572]
- Fix bar sizes of traces with (x,y)
NaNitems [#1519] - Fix handling of
NaNitems in array-ok attributes forscattergeoandscattermapboxtraces [#1538, #1564] - Fix hover label position for
bartraces with setwidth[#1527] - Fix
restylefor attribute containers [#1536] - Fix
restyleexception forscattergltraces with noydata [#1567] - Fix animation of text nodes that contain
<br>s [#1602] - Fix
toImagefor mapbox subplots when access token is set in the config options [#1598] - Emit
plotly_hoveronpietraces whenhoverinfo: 'none'[#1505] - Pass trace info during
plotly_clickonpietraces [#1505] - Pass through the wheel event if the scrollbar is at the very top or bottom [#1588]
- rm
consttoken from dist bundles that depend onbig-rat, see rat-nest/big-rat#4 for more details.
- Fix
restyleforscattergltraces with arraymarker.size(bug introduced in1.25.0) [#1521] - Fix
relayoutforhistogram2dcontourtraces [#1520] - Do not unnecessary mutate
parcoordsfull trace objects when computing line color and colorscale [#1509, #1508] - Do not unnecessary coerce trace opacity in
parcoordstraces [#1506]
- Double click handler on legend items to isolate 1 traces / group on graph [#1432]
- Use signed distance fields (SDF) method to render heterogeneous
scattergltraces improving performance [#1398] - Improve first-render performance in
scattergltraces by only creating visible objects [#1444] - Use
color-rgbainstead oftinycolor2to convert plotly color definitions to WebGL buffers improving performance for gl3d and gl2d traces [#1443] - Bump
uglify-jsminifier to version2.8.12[#1450]
- Fix 3D trace ordering on visibility toggle [#1466]
- Fix gl2d trace ordering on visibility toggle [#1444]
- Fix autorange routine for bar traces [#1475]
- Fix shapes and images referencing a missing subplot [#1481]
- Ensure array attributes can be restyled in all situations [#1488]
- Fix XYZ-column-to-2D-z convert routine for columns containing nulls [#1491]
- Fix range slider display when anchored to log axes [#1472]
- Make sure all trace types can be deleted from range sliders [#1472]
- Let the
parcoordsobject tree be garbage collected onrestyle[#1479] - Bring back support for histogram colorscales (bug introduced in
1.21.3) [#1500] - Support all axis types for clicktoshow annotations [#1497]
- Fix 3D margin relayout calls (bug introduced in
1.24.1) [#1494] - Fix
relayoutwhen trying to update empty axis containers (bug introduced in1.24.0) [#1494]
- Fix removal of last annotation or shape [#1451]
- Fix shape and image clip path removal [#1453]
- Fix overdrawing of data-referenced images [#1453]
- Make handling of
layer: 'below'shape more robust [#1453] - Allow multiple
parcoordsdimensions with the same label [#1457]
- Ensure that calling restyle or relayout in a
plotly_unhoverhandler does not result in an infinite loop (bug introduced in 1.24.0) [#1448] - Ensure autorange routine is bypassed when axis range is set (bug introduced in 1.24.0) [#1425]
- Fix annotations dragging in editable mode (bug introduced in 1.22.0) [#1441]
- Show correct curve number in gl2d hover data [#1427]
- Clear parcoords canvas specially if no panel exist [#1440]
- Fix parcoords to render last block increment [#1447]
- Axis refs in hover data are not plagued by circular references [#1431]
- Add
parcoordstrace type (parallel coordinate plots) [#1256] - Add support for multiple range sliders [#1355]
- Add
'aitoff'and'sinusoidal'geo projection types [#1422] - Implement
scene.dragmode: falseto disable drag interaction on 3D subplots [#1377] - Add
showAxisDragHandlesandshowAxisRangeEntryBoxesconfiguration options [#1389] - Add
customdataattribute to scatter traces to add custom data to scatter SVG nodes [#1379]
- Consistent handling of array containers during
relayout[#1403] - Improve hover for
choroplethtraces [#1401] - Make range slider handles and mask crispier [#1409]
- Bump
country-regexdependency to1.1.0[#1392]
- Fix 3D on iOS devices [#1411]
- Fix
surfacetrace opacity scaling [#1415] - Fix hover data in animations [#1274]
- Fix annotations edit when dragging from one axis to another [#1403]
- Fix 3D hover labels for date axes [#1414]
- Deleting cartesian subplots now clear their corresponding axis titles [#1393]
- Fix hover for xyz column
heatmaptrace'text'[#1417] - Fix
scattermapboxlines with trailing gaps [#1421] - Make
restyle,relayoutandupdatenot mutate input update objects [#1376] - Fix race condition in gl2d
toImage[#1388] - Fix handling of
Virgin Islandscountry name [#1392] - Fix
Plotly.validateforcolorscaleattributes [#1420]
- Bower installs now fetch un-minified
dist/plotly.jsbundle [#1373] - Add package to packagist repository [#1375]
- Fix
relayoutforscene.cameravalues [#1364] - Fix scaling on axis corner drag interactions for
bartraces [#1370] - Allow
barandhistogramtraces to coexist on same subplot [#1365] - Fix
barposition computations when placeholder traces are present [#1310] - Fix auto-axis-type routine for data-less
candelesticktraces [#1359]
- Add scrollbox to long dropdown updatemenus [#1214]
- Multiple IE9 fixes [#1332]
- Ensure that
plotly_afterplotis fired beforePlotly.plotpromise is resolved [#1342] - Fix exception when dragging graphs with empty text labels [#1336]
- Fix exception when creating empty
ohlcandcandlesticktraces [#1348] - Fix
editable: truelegend items logic forohlcandcandlesticktraces [#1349] - Fix restyle for contour traces in cases where autocontour is defaulted to true [#1338]
- Fix edge case in axis label tick assignments [#1324]
- Fix vanishing titles text in
editable: true[#1351] - Fix 3D thumbnail image generation [#1327]
- Add
cumulativehistogram attributes to generate Cumulative Distribution Functions [#1189] - Add
standoffattribute for annotations to move the arrowhead away from the point it's marking [#1265] - Add
clicktoshow,xclickandyclickattributes for annotations to show/hide annotations on click [#1265] - Support data-referenced annotation in gl2d subplots [#1301, #1319]
- Honor
fixedrange: falsein y-axes anchored to xaxis with range slider [#1261] - Add fallbacks for IE9 so that all cartesian traces can render without any polyfill [#1297, #1299]
- Adapt plot schema output for plotly.py 2.0 [#1292]
- Bump
mouse-changedep to^1.4.0[#1305] - Improve performance in
visibletoggling forscattergl[#1300]
- Fix XSS vulnerability in trace name on hover [#1307]
- Fix ternary and geo subplot with
visible: falsefirst trace [#1291] - Fix opacity for
mode: 'lines'items in legend [#1204] - Fix legend items style for bar trace with marker arrays [#1289]
- Fix range slider svg / pdf and eps image exports [#1306]
- Fix scattergl
visible: falsetraces with empty data arrays [#1300] - Fix a few contour trace edge cases [#1309]
- Updatemenus buttons now render above sliders [#1302]
- Add fallback for categorical histogram on linear axes [#1284]
- Allow style fields in sub and sup text [#1288]
- Fix zoom behavior on transformed traces [#1257]
- Compute axis auto-range after transform operation [#1260]
- Fix contour trace blowing up on zoom [#591]
- Fix
scattermapboxandscattergeohandling of blank stringstext[#1283] - Lock
mouse-change@1.3.0fixing 3D hover labels on freshnpm install[#1281]
- Fix handling of calendar in
filtertransforms where distinct calendars can now be set for both thetargetandvalue[#1253] - Make
Plotly.addFramesskip over non-plain-objects inputs [#1254] - Make
Plots.graphJsonaware offrames[#1255]
- Fix
ms2datetimeroutine for Chinese calendar [#1252] - Fix
tickformatfor world calendars [#1252]
- Bar labels via
textandtextposition[#1159] - Add support for 16 non-gregorian calendars for date inputs and display [#1220, #1230, #1237]
- Add support for ISO-8601 timestamps [#1194]
- Extend histogram bin auto-shifting algorithm to date axes [#1201]
- Trace type
heatmapglis now included in the main plotly.js bundle [#1197]
- Linearize date coordinates using UTC rather than local milliseconds [#1194]
- Fix wrongly computed date positions around daylight savings time [#1194]
- Fix erroneous traces in multi-subplot layout containing fill-to scatter traces (and plotly.py violin plots) [#1198]
- Fix clip path URL on pages with query hashes [#1203]
- Ensure that numeric frame name are handle correctly [#1236]
- Fallback for manual manipulation of slider/frames [#1233]
- Fix 1.20.0 regression in handling numerical strings including commas and spaces [#1185]
- Fix 1.20.0 regression involving date histograms [#1186]
- Fix numerous tickvals
andticktext` edge cases [#1191]
- Fix metaKeys field
PlotSchema.get()output
- Remove infinite loop when plotting 1-pt
scattergltraces [#1168] - Fix updatemenu bug where the wrong button was set to active [#1176]
- Fix
addTraceswhen called with existing traces as input [#1175]
- Fix hover labels in stacked bar charts [#1163]
- Fix mode bar zoom buttons on date axes [#1162]
- Fix annotation positioning on categorical axes [#1155]
- Allow date string inputs for axis ranges,
tick0,dtick, annotation / image positions, histogram bins [#1078, #1150] - Add special
dtickvalues for log axes [#1078] - Add
visibleattribute to annotations, shapes and images items [#1110] - Expose events on slider start/change/end [#1126]
- Expose event on updatemenu button click [#1128]
- Allow custom transform module to have supply layout default handler [#1122]
- Increase
scatterglprecision [#1114] - Use
topojson-clientto convert topojson to geojson [#1147]
- Fix hover labels for multi-trace
scatterglgraphs (bug introduced in1.18.0) [#1148] - Fix date format on hover on full hour [#1078]
- Fix bar labels for non-zero
basevalues [#1142] - Scatter colorscale now yield correct colors when cmin and cmax ashow re equal [#1112]
- Fix
filtertransform for categoricaltargetarrays with range operations [#1120] - Make sure frames with
nullvalues clear array containers [#1118] - Fix animations involving trace
opacity[#1146] - Fix fallback for non-animatable trace modules (bug introduced in
1.18.1) [#1141] - Fix race condition in animation resolution when coupled with
relayout[#1108] - Enforce casting requested frame names to strings [#1124]
Plotly.animteno longer breaks when passingnullframes [#1121]Plotly.PlotSchema.getnow correctly list rangeslider and rangeselector underxaxisonly [#1144]Plotly.relayoutcorrectly updates arbitrary layout attributes [#1133]
- Fix hover label positioning on bar traces [#1107]
- Fix dist bundles [#1094]
Unpublished on npm and CDN due to broken dist bundles.
- Add two-argument
Plotly.plotcall signature [#1014] - Add two-way binding functionality to updatemenus and sliders [#1016]
- Add
width,baseandoffsetattribute to bar trace [#1075] - Add
fromcurrentanddirectionanimation options [#1087] - Add ability to filter by arbitrary array [#1062]
- Rename
filtersrcfilter transform attributetarget(with backward-compatible map) [#1062] - Bump
sane-topojsonrequirement to 2.0.0. New topojson dist files fix the Michigan state border [#1077] - scattergl now handles higher resolution dates [#1033]
- Improve error messages in
Plotly.animate[#1088]
Plotly.newPlotnow respect user-defined layoutheightandwidth[#537]- Fix dendrogram cartesian axis layers [#1063]
- Fix RGBA colorscale handler for contour [#1090]
- Fix gl2d axis title positioning [#1067]
- Fix gl2d multi-line axis tick labels display [#1087]
- Fix performance deficit of scattergl trace type with date coordinates [#1021]
- Fix ohlc trace offset computation [#1066]
- Fix ohlc and candlestick default trace names [#1073]
- Make
Plotly.animatework with frames container array containers (e.g annotations) [#1081] - Make
restyleandrelayoutconsistently remove items in array containers when called with value argumentnull[#1086]
- Fix cartesian subplot resize [#1049]
- Fix cartesian interactivity after click [#1049]
- Fix
scattergeotraces with not-found country names [#1046] - Honor
'name'hoverinfo flag inohlctraces [#1050] - Fix animation merging for frames including array containers [#1041. #1048]
- Fix
requestAnimationFramepolyfill for script-tag imports [#1039]
- Add
ohlcandcandlesticktrace types [#1020] - Add slider layout component [#986, #1029]
- Add filter and groupby transforms [#936, #978]
- Add support for all cartesian trace types and subplot configuration in range slider range plots [#946, #1017]
- Add update menus
'buttons'type,directionandshowactiveoptions [#974] - Add
padattributes to update menus for more intuitive positioning [#989] - Add
plotly_hover,plotly_clickandplotly_unhoverevent emitters on gl2d subplot [#994] - Make
'text'mode scatter traces animatable [#1011] - Add picking for
'line'mode scattergeo traces [#1004] - Add support for
fill: 'toself'in scattergeo traces [#1004]
- Allow null / undefined frames in
Plotly.addFrames[#1013]
- Allow range sliders to properly relayout [#962]
- Fix handling of
NaNgaps in range slider range plots [#946, #1017] - Properly skip over
NaNs in scattergeo data arrays [#1004] - Fix handling graph div with style
visibility: inherit[#990] - Fix
Plotly.updatefor updates that require a full data + layout replot [#971] - Let update menus use
Plotly.updatemethod value [#972] - Fix tickfont relayout call on 3D subplot [#982]
- Fix scatter text node translations on range relayout [#956]
- Fix
Plotly.restylefor scatter tracemode[#956] - Fix color mapping discontinuity in
surfacetrace with circular colorscale [#959] - Fix
Plotly.redrawwhen scatter traces are added to the graph [#947] - Fix double click side-effects in gl2d plots [#958]
- Emit event animatingframe frame during animations [#953]
- 3D colored axis backgrounds and axis labels are rendered again (bug introduced in 1.17.0) [#931]
- Restyling
visibletofalseon all scatter traces present on a graph is now working again (bug introduced in 1.17.0) [#920] - Relayouting
paper_bgcolornow properly propagate to legend and updatemenu `bgcolor [#921] - Mapbox plot routine no longer make request to public Mapbox server when linked to a Mapbox Atlas instance [#919]
- Add support for animations for scatter trace [#802]
- Add frames and animate API ->
Plotly.animate,Plotly.addFramesandPlotly.deleteFrames[#802] - Add
Plotly.updatemethod which can perform data and layout update in one call [#875] - Add
pointcloudgl2d trace type [#850, #869] - Add
xgapandygapto heatmap traces to define space between heatmap bricks [#868] - Add
separatethousandsaxis attribute which determines whether four-digit numbers are separated or not [#848] - Add
'skip'value to tracehoverinfocorresponding to traces transparent to the hover picking routine [#851] - Add support for trace opacity in
toselffilled trace [#896] - Add global transform config option [#852]
- Add
requestAnimationFrametodist/[#904]
- Explicitly skip undefined props on
restyleandrelayout[#844] - Removed a few circular dependency patterns [#833, #837, #845, #878]
- Fix legend trace toggle background attributes on restyle [#909]
- Make 'yanchor' default be its intended value of
'top'[#894] - Fix box plot jitter algorithm when IQR = 0 [#915]
- Fix box plot jitter algorithm when data range is 0 [#915]
- Fix mapbox event firing duplicates [#901]
- Fix mapbox visible false traces handling on first draw [#900]
- Avoid draw buffer to display buffer copy in gl2d plots [#843]
- Do not extend data array on event emission [#842, #866]
- Make
Plotly.redrawthrow an error when called on non plotly graph div [#907] - Make
plotly.min.jswork when injected in Require.js environment [#914]
- Fix SVG exports for graphs with layout images [#846]
- Properly handles duplicate categories in non-default
categoryorder[#863] - Fix range selector position logic for overlaying axes [#873]
- Autorange is now properly computed for heatmapgl and contourgl traces [#855, #874]
- Trace toggling via legend preserves axis ranges in gl2d plots [#855, #874]
- Bump
mapbox-gldependency to 0.22.0 [#867]
- Fix decoding for the supported HTML entities (bug introduced in 1.16.0) [#835]
- Fix layout images position on subplots [#831]
- Fix a few cartesian autorange edge cases [#813]
- Drop support for plotting in child windows which broke
Plotly.plotin some numerous browsers (e.g. FF46, FF47, FF48) [#829]
- Add
updatemenus(aka dropdowns) layout components [#770] - Trace type
scattermapboxis now part of the main bundle [#816] - Add support for
plotin child windows [#764, #806] - Horizontal legends with many items are now wrapped into multiple lines [#786]
- Active color of range selector button is now configurable via
activecolor[#796] - Add support for mapbox style JSON [#795]
- Promise queue is cleared on
restyleandrelayoutinstead of in theplotcatch handler (which ate up user-defined catch handlers as of 1.15.0) [#776, #789] - Improve performance in
convertToSVGstep [#791, #804]
- Skip over non-container arrays in relink private key step (performance bug introduced in 1.15.0) [#817]
- Categorical heatmap traces with insufficient brick are now functional again (bug introduced in 1.14.0) [#783, #812]
- Fix
Plotly.validatefor info and container array attributes [#814, #819] - Range selector buttons can now be deleted via
relayout[#793]
- Add
Plotly.validatemethod [#697] - Add support for transforms plugins modules [#499]
- Some partial bundles are now distributed in
dist/[#740] - Mapbox access token can now be set in
layout.mapbox[#729] - Undo/Redo queue length is now configurable via configuration option
queueLength[#737]
- Improve performance in gl2d request animation frame loop [#731]
- Improve
Lib.extendDeepperformance for primitive arrays [#732] - Improve potential XSS input in
textfields [#736] - Improve scaling on scroll zoom for scatter lines and markers [#761, #762]
toImagepixel output for gl2d graphs are now scaled properly [#735]scattermapboxmarker size and color arrays are now correctly converted when they include repeated values [#747]- Fix scatter3d marker line color inheritance [#754]
textfields can now support link with query params=and&[#736]- Fix Chrome 50 bug where tester svg blocked other DOM nodes [#745]
Plotly.newPlotcorrectly clears all present WebGL contexts [#724]- Bar traces with
layout.bargap0 and unsetmarker.line.widthare functional again (bug introduced in 1.3.0) [#709] - Stacked bar traces now correctly set the first bar position when leading gaps are present (bug introduced in 1.11.0) [#716]
- Bar traces with
layout.barmoderelative now correctly compute the bar sum of the first position when positive and negative values are present [#723] - Event
plotly_relayoutis emitted upon pan / zoom on a mapbox subplot [#727] - Lasso and select box drag modes now work with fixed ranged axes [#728]
- gl2d trace objects are purged when their parent scenes are destroyed [#724]
- Fix colorscale restyle calls on heatmap traces (bug introduced in 1.14.0) [#694]
- Hover after zoom / pan is now functional again in ternary plots (bug introduced in 1.14.0) [#688]
- Fix mapbox layer relayout starting from invisible layer [#693]
- Hover labels when
hoveron: 'fills'are now constrained to the viewports [#688] - Fix
surfacecountours description [#696] - Fix
mapbox.layers.linedescription [#690]
- Attribute
line.colorinscatter3dtraces now support color scales [#617] - Annotations tail positions can now be set in data coordinates via the new
axrefandayrefattributes [#610] - Attribute
hoveronis added forscatterandscatterternarytraces which adds the option to show hover labels about fill regions (instead of simply of about data points) [#673] - Layout shapes can now be moved and resized (except for 'path' shapes) in editable contexts [#660]
- Numerous additions and changes where made to the mapbox layout layers
attributes (introduced in 1.13.0). Namely,
circleandsymbollayer type where added. Note that some style attributes have been renamed to match the mapbox-gl API more closely. [#681]
- Off-screen heatmap traces are properly deleted (bug introduced in 1.5.1) [#655]
- Hover labels for multi-heatmap subplot is functional again (bug introduced in 1.4.0) [#655]
- Heatmap x/y brick generation is now functional for 0 and 1 item columns [#651]
- Multiple layout images can now shared the same image source [#672]
- Updating legend border and bgcolor attribute now works via
Plotly.relayout[#652] - Dragmode 'select' and 'lasso' no longer throw exception when selecting
legendonlytraces [#644] - Ternary plots now respect the
staticPlotconfig option [#645] - Descriptions for axes
nticksand contour tracesncountoursnow properly describe their behavior [#662]
- Beta version of the
scattermapboxtrace type - which allows users to createmapbox-glmaps using the plotly.js API. Note thatscattermapboxis only available through custom bundling in this release [#626] - Configurable log levels. All plotly.js logging is now turned off by default.
Use
Plotly.setPlotConfig({ logging: /* 1 or 2 */ })to (1) display warnings only or (2) all logs [#590] - Thorough
mesh3dattribute descriptions [#593]
- Generalize hover picking routine (to make more easily re-usable for other plot types) [#575, #631]
- Fix
Plotly.toImageandPlotly.downloadImagebug specific to Chrome 51 on OSX [#604] - Fix
Plotly.downloadImageforsvgtypes [#604] - Fix
scatterglopacity and connectgaps for'lines'mode [#589] - Make legend scroll bar keep its position after redraws [#584]
- Properly handle axis-reference shapes on overlaid axes [#612]
- Fix
Plotly.relayoutcalls forlayout.imagesin{ astr: val }notation [#624] - Bring back correct default value for
lightpositionin surface traces (bug introduced in 1.12.0) [#571] - Fix typos in contours descriptions in contour traces [#583]
- Fix typos in
axis.ticktextdescription [#607] - Fix ambiguities in histogram
nbindescriptions [#623]
- Light positions, face normal epsilon and vertex normal epsilon are now
configurable in
mesh3dtraces [#556] - Light position is now configurable in
surfacetraces [#556] surfaceandmesh3dlighting attributes are now accompanied with comprehensive descriptions. [#556]
- Plot modules are now allowed to have their own
toSVGmethod for subplot-specific to-svg logic [#554]
- gl2d plots are now functional in
core-jsenvironments (e.g. in babel es6 presets) [#569] - gl2d replot calls from a blank plot are now functional [#570]
- SVG graph config argument
scrollZoomis now again functional (bug introduced in v1.10.0) [#564] layout.separatorsis now honored in pie text labels [#547]- Heatmap
zsmoothvalue'fast'is now functional for arbitrary layout widths [#548] - Range sliders now respond to all axis range relayout calls [#568]
- Add top-level methods
Plotly.toImageto convert a plotly graph to an image data URL (svg, png, jpg, and webp are supported) andPlotly.downloadImageto download a plotly graph as an image [#446] - Add the ability to add arbitrary images loaded from a url to a plot's layout [#525]
- Add the option of making legend span horizontally [#535]
- Add
connectgapsattribute toscattergltraces [#449] - Add new 'relative' bar mode which stacks on top of one another with negative values below the axis, positive values above [#517]
- Add support for the 'winkel tripel' projection in geo subplots [#492]
- Event
plotly_relayoutis now emitted on gl2d subplot drag/pan/zoom interactions [#466] - Add support for fill coloring in
contourgltraces [#522, #543]
- Cartesian on-hover routine is now uses a 50ms interval between search calls instead of 100ms for smoother displaying hover labels [#514]
- [Internal change] fullLayout
_hasfields are replaced by a_hasmethod which checks if a particular plot type is present on a graph [#491]
- Bar widths of traces with null coordinates are now correctly computed [#542]
- Error bar spans on bar traces with null coordinates are now correctly computed [#542]
- All promises spawn in
Plotly.plotare now guaranteed to be resolved before the final resolve [#521] - Restyling
scatterternarydata attributes is now working [#540] - Error bar of 0 length in log axes are not included in hover labels (instead of
showing
NaNs) [#533]
- Subplot and range slider clip paths are now functional in AngularJS [#509]
relayoutcall involving axiscategoryorderandcategoryarrayare now working [#510]- Annotation drag interactions in
editable: truemode are now functional (bug introduced in 1.10.0)[#505] - Improved attribute description for shape
xrefandyref[#506]
- Resizing a graph (e.g. via
Plotly.relayoutor Plotly.Plots.resize) properly updates the plot area clip paths (bug introduced in 1.10.0) [#490] Plotly.Snapshot.toSVGis now functional again in IE11 and old version of Chrome and FF (bug introduced in 1.10.0) [#489]- Hover labels of superimposed traces when 'hovermode' is set to 'closest' are properly displayed (bug introduced in 1.10.0) [#495]
- Surface contour highlights are toggleable [#459]
- Surface contour highlights style attributes are lower cased [#459]
- Zoom overlay are drawn over shapes [#448]
- Legend are draggable in
editable: truecontexts (bug introduced in 1.6.0) [#487] - Legend scroll box are drawn outside the legend [#478]
- Beta version of two new 2D WebGL trace types:
heatmapglandcontourgl[#427, #434] - Two new
scatterlinefillmodes:'toself'and'tonext'[#462] - Fills for
scatterternarytraces are now supported [#462] - Configurable axis category ordering with
categoryorderand an optionalcategoryarrayaxis attributes [#419] - Configurable shapes layer position with shape attribute
layer[#439] - Configurable range slider range (so that the initial xaxis range can differ from the range slider range) [#473]
- Nested SVG elements in SVG image exports are removed, making the to-image mode bar button work in RStudio and SVG export compatible with Adobe Illustrator [#415, #454, #442]
- Use
country-regexnpm package instead of hard-coded file of ISO-3 code to country regular expressions [#461]
- Legend positioning does not break on negative
xandysettings (bug introduced in 1.6.0) [#417] - Shapes are properly deleted when clearing all of them at once (bug introduced in 1.9.0) [#465]
- Promise are return after first render in gl3d and gl2d plots [#421]
- Click and hover events are properly triggered when trace
hoverinfois set to'none'[#438] plotly_unhoverevents is now properly triggered on geo trace types [#429]plotly_relayoutevent is now properly triggered on gl3d set camera [#458]- RGBA colors are now supported in
scatterandbarcustom color scales [#422] - Range slider is now functional with
x0/dxdata [#441] - Range slider is now compatible with mode bar axis range buttons and double click [#471]
- Ternary plots with support for scatter traces (trace type
scatterternary) [#390]
- Toggling the visibility of
scatter3dtraces withsurfaceaxisnow works [#405] scatter3dtraces withsurfaceaxisturned now feature real 3D opacity [#408]plotly_unhoveris now properly triggered overpietraces [#407]- Better grammar in
scatterattribute descriptions [#406]
- Range slider functionality for scatter traces [#336, #368, #377]
- Range selector functionality for cartesian and gl2d plot types [#373]
- Support for connectgaps in scatter3d traces [#361]
- gl2d toImage mode bar button is now again functional (bug introduced in 1.7.0) [#369]
- IE / Edge handling of getComputedTextLength is now functional [#376]
- improved marker color attribute description [#366]
- Legend dimensions are correctly updated (bug introduced in 1.7.0) [#365]
- Friction between cartesian double-click and drag interactions is reduced [#355]
- Ultra-zoomed svg line paths are correctly computed [#353]
- Initial axis ranges are no longer reset on data-updating restyle calls [#351]
- Events now work in jQuery no-conflict scopes (bug introduced in 1.7.0) [#352]
- Custom surface color functionality (for 4D plotting) is added to surface traces [#347]
- Top-level
Plotly.purgemethod (which returns the graph div in its pre-Plotly.plot state) is added [#300] - Support for custom hover labels on multiple subplots in
Plotly.Fx.hoveris added [#301]
- Error bars node ordering now respect the trace ordering [#343]
- Geo traces nodes now update properly on streaming plot calls [#324]
- jQuery check in event module is made more robust [#328]
- Argument parsing for vertex and face colors of mesh3d traces is now functional [#287]
- SVG overflow property is now properly set for IE11 [#305, #306]
- Hover labels associated with
textarrays with falsy values are properly skipped over [#310] - Snapshot routines now strip browser-only user-select style attributes [#311]
- Legend scroll bars are no longer invalid SVG elements (bug introduced in 1.6.0) [#304]
- Colorscale YlGnBu and YlOrRd are now properly identified [#295]
- SVG cartesian, 3D, geographic maps and pie charts can now coexist on the same graph [#246, #258, #289]
- Legends with long item lists are now scrollable (instead of being cropped) [#243]
- Event
plotly_deselectis now emitted after double-clicking inselectandlassodrag modes. - Event
plotly_doubleclickis now emitted after double-clicking on SVG cartesian graphs inzoomandpandrag modes. - Layout attributes
dragmodeandhovermodecan now be set individually in each scene [#258] Plotly.Plots.resizenow returns a promise. [#253, #262]
Plotly.deleteTracesnow properly deletes the last trace of a cartesian subplot [#289]Plotly.deleteTracesnow works on heatmap, contour, pie, surface, mesh3d and geo trace types [#289]Plotly.deleteTracesnow properly delete color bars associated with deleted traces- Clearing cartesian axes via
relayoutno longer results in an uncaught error [#289] - Events
plotly_hover,plotly_unhoverandplotly_clickare properly emitted on 3D graphs [#240] - Null and undefined categories are properly skipped over [#286]
- Hover labels on 3D graphs are now properly hidden when
hovermodeis set to false [#258] - Multi-scene 3D graphs now set their camera position via their own scene attributes [#258]
- Toggling
hovermodeon 3D graphs no longer resets the scene domain [#258] - Resetting the camera position on scenes where the
cameraattribute was supplied no longer results in an uncaught error [#258] - Axis attributes
hoverformat,tickprefix,ticksuffixare honored even whenshowticklabelsis set to false [#267] - Config option
doubleClickset to'reset'now properly handles auto-ranged axes [#285]
- Fix geo trace visibility toggling (bug introduced in 1.5.1) [#245]
- Scattergeo and choropleth now correctly fire hover and click events [#215]
- Heatmap and contour traces are redrawn in the correct order [#194]
- Early returns in
Plotly.plotnow correctly return Promise rejections [#226] - Soon to be deprecated
SVGElement.offsetParentcalls are removed [#222] - Geo zoom in button is now correctly titled
Zoom in[#219] - All attribute description are correctly stripped from the dist files (bug introduced in 1.5.0) [#223]
- Insecure dev dependencies
ecstaticanduglify-jsare bumped [#225] - Outdated karma-browserify dev dependency is bumped [#229]
- Modularize the library (first iteration). Trace types can be required in one-by-one to make custom plotly.js bundles of lesser size. [#180, #187, #193, #202]
- Remove json assets from the js source files (to better support Webpack bundling) [#183]
- Update d3, tinycolor2, topojson dependencies [#195]
- Improve
'colorscale'attribute description [#186]
- Fix pan mode drag delay [#188]
- Make
Plotly.deleteTracehandle big-indices-array properly [#203]
- Click events work properly after being broken in 1.4.0 [#174]
- Lasso and rectangular selection interactions for scatter-marker and scatter-text traces [#154, #169]
- Un-gitignore css and svg font built files, removing post-install step and dependency on node-sass [#164]
- Clean up Pie, Box and Choropleth trace module [#158, #159, #165]
- Surface traces correctly handle
zminandzmaxattributes [#153] - Pie trace correctly trigger hover events [#150]
- Fix
Plotly.addTracesfor gl3d and gl2d trace types [#140]
- Trigger click event on pie charts [#111]
- Add attribute descriptions for mesh3d trace type [#115]
- [Internal] Trace module have now a 1-to-1 correspondence with trace type [#124]
- [Internal] Remove circularize import in colorbar and colorscale module [#136]
- Fixed zeroline behavior in gl3d plots [#112]
- Axis
tickangleconsistently used degrees in both svg and gl plots [#131] Plotly.newPlotdestroy mode bar before plotting new one [#125]Plotly.newPlotremoves all event listeners from graph div [#117]- Fixed attribute description for scatter3d marker opacity [#114]
- Improve XSS check in anchor href [#100]
- Fix Fifefox 42 to-image failures [#104]
- Fix error bar with type 'sqrt' logic making them visible without specifying the 'value' field [#91]
- Fix cartesian zoom/drag cover attributes for Firefox 31 [#92]
- All
Plotly.____methods now return a promise, and pass the graph-div as an argument [#77] package.jsonnow haswebpackfield so plotly.js can be used by webpack users [#68]- Add support for rgba colours in pie-charts [#63]
- Optimized by calling window.getComputedStyle only once [#81]
- Improved npm install process for topojson file resolve [#48]
- Fixed geo-plot promises [#52]
- Typo fixed in
No DOM elementerror message [#64] - Fix hover labels with hoverinfo 'text' [#70]
- Fix scaling for gl3d error bars [#74]
- Fix
displayModeBarplot config logic [#57] - Fix length-1 bins count as ascending in
Lib.findBin[#47] - Fix jasmine test runner on windows [#46]
- Add three plot config options:
modeBarButtonsToRemove,modeBarButtonsToAddandmodeBarButtonswhich combine to add the ability to remove specific mode bar buttons add custom mode bar buttons and fully customize the mode bar.
- Fix installation from npm3 [#12]
- Fix UMD in plotly.js dist files [#18]
- Fix for blank elements in a text array [#31]
First fully open source release.
- Add 2D WebGL plot engine
- Save to cloud is now done via a modebar button by default,
the
'Edit chart'link is still available through the'showLink'plot config. - Better double-click notifier CSS
- Fix
Plotly.newPlot3D and geo bug. - Fix
plotly_clickevent bug in latest Chrome and Firefox.
- Different plot types cannot be mixed in subplots.
- 2D WebGL has no image test support.
- Click and hover events are not hooked for gl3d, geo and gl2d plot types.
- Polar chart are under-developed.