GeezerVison is showing github.com — Releases · plotly/plotly.js
Releases · plotly/plotly.js
v4.3.0
Added
- Add
domainpad to cartesian axes to reserve space in pixels inside the edges of domain, so the gap between subplots stays the same at all figure sizes [#7965], with thanks to @SharadhNaidu for the contribution!
Fixed
- Fix
Plotly.react and Plotly.relayout with a whole axis object ignoring a new range on an axis with constrain: 'domain' [#8144], with thanks to @Roshan1299 for the contribution!
- Apply
tickprefix and ticksuffix to tickvals without explicit ticktext [#8160], with thanks to @davrens101 for the contribution!
- Fix potential prototype pollution from inherited properties in plot API calls [#8168]
Contributors
Roshan1299, davrens101, and SharadhNaidu
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
v4.2.0
Added
- Add
layout.legend.itemheight to set the height of the legend fill swatch, so more of a trace fillpattern is visible in the legend [#7925], with thanks to @MannXo for the contribution!
- Add spikelines to ternary plots [#8041], with thanks to @Lexachoc for the contribution!
- Add TypeScript declarations for lifecycle and WebGL context events [#8145]
Fixed
- Respect explicit
node.x/node.y positions in Sankey traces that contain unlinked or grouped nodes [#7826], with thanks to @kyo5uke for the contribution!
- Fix incorrect positioning of tick labels when using
ticklabelindex on period axes [#7934], with thanks to @my-tien for the contribution!
- Fix tick label format sometimes being incompatible with the labeled tick when using
ticklabelindex [#7935], with thanks to @my-tien for the contribution!
- Fix unified hover swatch color and pattern for bar
marker.pattern arrays [#8039], with thanks to @Dmao233 for the contribution!
- Keep cartesian traces aligned with their axes when an automargin title is combined with any component that expands the margins [#8045]
- Fix hover labels ignoring MathJax for text that is a single tex expression [#8051], with thanks to @SergeyAxiomatic
- Fix XSS via
javascript: URLs in MathJax \href macros by sanitizing links in MathJax-rendered text [#8051], with thanks to @SergeyAxiomatic
- Fix issue causing
scattergl plot to freeze up when hovering over points [#8052], with thanks to @emilykl for the contribution!
- Fix quiver arrow colors for a discrete
marker.color array [#8069], with thanks to @Yahiro025 for the contribution!
- Fix numeric and numeric-string marker symbol variant detection in
scattergl [#8071]
- Fix
hoverlabel.align so that it aligns the item text in x unified and y unified hover labels [#8104], with thanks to @MannXo for the contribution!
- Convert modern CSS color formats to rgba for scattergl based traces [#8119]
- Update TypeScript types so that
Plotly.relayout, Plotly.restyle, Plotly.update, and the plotly_relayout event accept attribute paths such as 'xaxis.autorange' [#8126]
- Add the
LayoutUpdate and DataUpdate types for these update objects
- Add the
(root, attribute, value) call form to the types of Plotly.relayout and Plotly.restyle
- Fix funnel
percentTotal text formatting to display formatted percentages instead of raw ratios [#8139], with thanks to @ORITOMI for the contribution!
Contributors
my-tien, emilykl, and 7 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
salehghotbani reacted with rocket emoji
1 person reacted
v4.1.2
Changed
- Use
ResizeObserver for responsive chart resizing instead of listening for window resize events [#8017], with thanks to @Lexachoc for the contribution!
- Describe
config.toImageButtonOptions in the plot schema [#8066]
Fixed
- Fix modebar hover colors not updating after
color or activecolor changes [#8024], with thanks to @Lexachoc for the contribution!
- Correct the image export types:
format now accepts full-json, width and height accept null, and ToImgopts.format, ToImgopts.width, ToImgopts.height and DownloadImgopts.filename are optional because toImage and downloadImage supply them [#8066]
- Pick the trace drawn last on a hover tie in
scattergl and splom (matching scatter) [#8079]
- Allow typed arrays in the types for
arrayOk number and color attributes [#8087]
- Redraw plots when a font that they use finishes loading [#8094]
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
v4.1.1
Changed
- Update
maplibre-gl to v6 to address CVE-2026-85061 [#8035]
maplibre-gl v6 dropped WebGL1 support, so some older browsers won't be able to use the map traces. Safari 15, Chrome 56, Firefox 51 and later are now required for the map traces.
Fixed
- Box and lasso selection of
scattermap points are now supported on a rotated or pitched map [#8035]
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
salehghotbani, RFSH, jqnatividad, and fujidana reacted with rocket emoji
4 people reacted
v4.1.0
Added
- Add an opt-in modebar button for downloading Plotly figures as JSON [#7990, #8022], with thanks to @gokul-debugger for the contribution!
- Add
legend.groupdoubleclick to set the group behavior for a legend double-click [#7997], with thanks to @rascal-sl for the contribution!
Changed
- Increase default double-click delay threshold to 500ms (from 300) [#8014]
Fixed
- Correct the
showspikes axis attribute description to clarify that it applies for all hovermode values except when hovermode is false [#7981], with thanks for @CAOShurong for the contribution!
- Update country-iso-search to v0.1.2 to fix issue with UTF-8 characters being decoded incorrectly [#7994]
- Compile TypeScript files under
src/ to JavaScript during packaging to fix Node resolution [#8000]
- Include type defs in appropriate partial bundles [#8001]
- Add TypeScript declarations for the modular
lib/ entry points [#8009]
- Handle regex enum values when generating schema types [#8010]
- Include trace-contributed layout attributes in generated types [#8020]
- Resolve the per-point marker color for hover labels in
scattergl, quiver traces [#8027]
Contributors
tisankanj, CAOShurong, and gokul-debugger
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
salehghotbani reacted with rocket emoji
1 person reacted
v4.0.0
Added
- Add
minscale, maxscale geo plot attributes [#7371], with thanks to @mojoaxel for the contribution!
- Enable TypeScript compatibility within the library and start exporting types [#7680]
- Add
quiver trace type to visualize vector fields using arrows [#7710, #7945], with thanks to @degzhaus for the contribution!
- Use dashed markers in legend for shape traces with dash configured [#7845]
- Add
direction attribute to the Sankey trace, controlling the flow direction along the orientation axis [#7870], with thanks to @wf-r for the contribution!
forward keeps sources on the left (horizontal) or top (vertical)
reversed moves them to the right or bottom
- Add
sort option to Sankey links and nodes [#7873], with thanks to @adamreeve for the contribution!
- Add support for MathJax v4 [#7898]
- Add top-level
xPixel and yPixel keys to hover and click event data, corresponding to the pixel position of the cursor relative to the top-left corner of the graph div [#7966]
- When
hoveranywhere is enabled, emit a plotly_unhover event when the cursor leaves the plot area [#7966]
Removed
- Breaking: Remove
scattermapbox, choroplethmapbox, densitymapbox trace types, the mapbox subplot, and the mapboxAccessToken config option [#7860]
- These traces have been deprecated since v3. Use the equivalent
*map traces going forward.
- Breaking: Drop support for MathJax v2 [#7898]
- MathJax v3 and v4 are now supported in plotly.js
- Remove config attributes
showLink, linkText, sendData, showSources, and showEditInChartStudio, as well as trace attribute stream, since all of these were associated with Chart Studio and are no longer needed [#7812]
- Remove all
*src attributes, as well as layout.hidesources attribute, from the schema [#7829]
- Remove internal
trace._fullInput property and other dead code related to the removed transforms feature. No user-facing changes expected [#7834]
Changed
- Breaking: Switch color processing library from TinyColor to culori [#7536], #7962]
rgb()/rgba() strings with decimal 0–1 fractions are no longer interpreted as percentage values (relative to 255)
hsv() color strings are no longer permitted
- New color formats are now supported:
#ff0000aa, #f00a, rgb(255 0 0), rgba(255 0 0 / 0.5), hsl(0 100% 50% / 0.5), hsla(0, 100%, 50%, 0.5), lab(), lch(), oklab(), oklch(), color(), hsl(0.5turn 60% 40%), hsl(none 60% 40%)
rgb() now accepts an optional alpha, so rgb(255, 0, 0, 0.5) is no longer opaque (rgb and rgba are aliases per spec)
- Color strings that are not valid CSS are now rejected, such as
hsl(120, 50% 50%)
- Contrasting text and border colors are picked by WCAG contrast ratio, so labels on saturated mid-tone fills may switch from dark to white
- Breaking: Set default
layout.axis.tickmode to 'sync' when axis is overlaying [#7684]
- Breaking: Change
splom.axis.matches default from false to true [#7843]
- Breaking: Replace
country-regex with country-iso-search to search for country names in choropleth, scattergeo traces [#7856]
- The vast majority of country names are handled exactly the same with the new library; a small number of legacy entries have been removed
- Breaking: Update minimum required Node version to 22 [#7861]
- Breaking: Change
layout.geo.fitbounds default from false to 'locations' [#7895]
geo subplots will now auto-fit the initial view to the trace data
- Set
fitbounds: false explicitly to opt out
- Breaking: Return actual data values (rather than calcdata values) for
xvals / yvals in hoveranywhere and clickanywhere events. Date and category axes will now return strings rather than numeric values. Linear and log axis values remain unchanged. [#7964]
- Enable
scattermap icons to render in color, upgrade Maki icons version to 8.2, and standardize scattermap legend icons to circles [#7825]
- Use plot title as default filename for "Download plot" button [#7828]
- Change signature of
plots.graphJson() function to remove mode argument [#7829]
- Upgrade
plotly/d3-sankey to 0.12.3. [#7830], with thanks to @adamreeve for the contribution!
- Update
plot_config to show the "Upload to Cloud" button by default, and set the default server URL to cloud.plotly.com via [#7909]
- Update "Share chart" dialog with more informative wording [#7928]
Fixed
- Fix
histogram autobin size for single-point traces in overlay mode on data updates via Plotly.react [#7507], with thanks to @Lexachoc for the contribution!
- Format tick labels correctly for small numbers in exponential notation [#7768], with thanks to @Hasnaathussain for the contribution!
- Defer automargin during scroll-wheel zoom, to prevent erratic jittering while zooming [#7815], with thanks to @keilogic for the contribution!
- Fix crash when ordering categories by value (e.g.
sum descending) with null coordinates [#7855]
- Prevent outside bar text for zero-length bars from overlapping axis tick labels [#7872], with thanks to @vizansh for the contribution!
- Fix
scattermap, densitymap traces not showing all points by dynamically computing center, zoom values [#7884, #7913], with thanks to @palmerusaf and @DhruvGarg111 for the contributions!
- Fix GeoJSON bounding-box computation for
choropleth and scattergeo traces whose geometry crosses the antimeridian [#7891]
- Fix
hovertemplate/texttemplate/tickformat/hoverformat improperly handling d3-format specs that start with a sign flag such as +.2f [#7900], with thanks to @TemRevil for the contribution!
- Snap cartesian axis tick values to multiple of delta so custom
tickformat (e.g. "~r") no longer shows floating-point artifacts [#7901], with thanks to @arieleli01212 and @kirthi-b for the contribution!
- Fix
scattermap box and lasso selection across the antimeridian [#7905], with thanks to @coyaSONG for the contribution!
- Fix crash ("Something went wrong with axis scaling") when a colorbar's title or padding leaves it with a negative domain length [#7908], with thanks to @zeehio for the contribution!
- Prevent MultiPolygon features with no positive-area polygon from aborting choropleth rendering [#7921], with thanks to @swjturay for the contribution!
- Fix
geo.fitbounds: 'locations' when mixing antimeridian-crossing territories with normal ones [#7948]
- Fix issue where plot fails to render if unsupported MathJax version is present on page [#7951]
- Fix numeric color sorting for bundled parallel-categories (parcats) paths [#7959], with thanks to @CAOShurong for the contribution!
Contributors
zeehio, degzhaus, and 15 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
Konstantin-Dudersky, fujidana, and OBriqa reacted with hooray emoji
3 people reacted
v4.0.0-rc.0
Added
- Add
minscale, maxscale geo plot attributes [#7371], with thanks to @mojoaxel for the contribution!
- Enable TypeScript compatibility within the library and start exporting types [#7680]
- Add
quiver trace type to visualize vector fields using arrows [#7710], with thanks to @degzhaus for the contribution!
- Use dashed markers in legend for shape traces with dash configured [#7845]
- Add
sort option to Sankey links and nodes [#7873], with thanks to @adamreeve for the contribution!
- Add support for MathJax v4 [#7898]
Removed
- Breaking: Remove
scattermapbox, choroplethmapbox, densitymapbox trace types, the mapbox subplot, and the mapboxAccessToken config option [#7860]
- These traces have been deprecated since v3. Use the equivalent
*map traces going forward.
- Breaking: Drop support for MathJax v2 [#7898]
- MathJax v3 and v4 are now supported in plotly.js
- Remove config attributes
showLink, linkText, sendData, showSources, and showEditInChartStudio, as well as trace attribute stream, since all of these were associated with Chart Studio and are no longer needed [#7812]
- Remove all
*src attributes, as well as layout.hidesources attribute, from the schema [#7829]
- Remove internal
trace._fullInput property and other dead code related to the removed transforms feature. No user-facing changes expected [#7834]
Changed
- Breaking: Switch color processing library from TinyColor to color [#7536]
rgb()/rgba() strings with decimal 0–1 fractions are no longer supported
hsv() color strings are no longer permitted
- Color calculations may differ slightly (by a few RGB units)
- New color formats are now supported: '#ff0000aa', '#f00a', 'rgb(255 0 0)', 'rgba(255 0 0 / 0.5)', 'hsl(0 100% 50% / 0.5)', 'hsla(0, 100%, 50%, 0.5)', 'hwb(0, 0%, 0%)'
- Breaking: Set default
layout.axis.tickmode to 'sync' when axis is overlaying [#7684]
- Breaking: Change
splom.axis.matches default from false to true [#7843]
- Breaking: Replace
country-regex with country-iso-search to search for country names in choropleth, scattergeo traces [#7856]
- The vast majority of country names are handled exactly the same with the new library; a small number of legacy entries have been removed
- Breaking: Update minimum required Node version to 22 [#7861]
- Breaking: Change
layout.geo.fitbounds default from false to 'locations' [#7895]
geo subplots will now auto-fit the initial view to the trace data
- Set
fitbounds: false explicitly to opt out
- Enable
scattermap icons to render in color, upgrade Maki icons version to 8.2, and standardize scattermap legend icons to circles [#7825]
- Use plot title as default filename for "Download plot" button [#7828]
- Change signature of
plots.graphJson() function to remove mode argument [#7829]
- Upgrade
plotly/d3-sankey to 0.12.3. [#7830], with thanks to @adamreeve for the contribution!
- Update
plot_config to show the "Upload to Cloud" button by default, and set the default server URL to cloud.plotly.com via [#7909]
Fixed
- Fix
histogram autobin size for single-point traces in overlay mode on data updates via Plotly.react [#7507], with thanks to @Lexachoc for the contribution!
- Format tick labels correctly for small numbers in exponential notation [#7768], with thanks to @Hasnaathussain for the contribution!
- Fix crash when ordering categories by value (e.g.
sum descending) with null coordinates [#7855]
- Fix
scattermap, densitymap traces not showing all points by dynamically computing center, zoom values [#7884, #7913], with thanks to @palmerusaf and @DhruvGarg111 for the contributions!
- Fix GeoJSON bounding-box computation for
choropleth and scattergeo traces whose geometry crosses the antimeridian [#7891]
- Snap cartesian axis tick values to multiple of delta so custom
tickformat (e.g. "~r") no longer shows floating-point artifacts [#7901], with thanks to @arieleli01212 and @kirthi-b for the contribution!
Contributors
degzhaus, mojoaxel, and 7 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
gchudnov, etpinard, NisargHTrivedi, and jqnatividad reacted with thumbs up emoji
4 people reacted
v3.7.0
Changed
- Update
sendDataToCloud modebar button to upload chart to Plotly Cloud [#7802, #7852, #7854]
- NOTE: The Plotly Cloud endpoint for receiving charts is not yet functional, so this button won't complete the upload.
Fixed
- Fix stale
scattergl error bars after toggling traces with mixed error bar visibility [#7773], with thanks to @JulienIcon for the contribution!
- Fix "unrecognized GUI edit: selections[0]..." warnings emitted after making a box or lasso selection and then calling
Plotly.react() [#7836]
- Fix geo
fitbounds to choose a compact longitude range when point data straddles the antimeridian [#7837], with thanks to @SharadhNaidu for the contribution!
- Preserve XML structural entities during decode when exporting SVG [#7838]
- Fix
Plotly.Fx.hover crash on scattermap traces when called programmatically with a pointNumber selection [#7882]
Contributors
JulienIcon and SharadhNaidu
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
gchudnov, jqnatividad, and megzjudge reacted with thumbs up emoji
gchudnov reacted with hooray emoji
gchudnov reacted with rocket emoji
All reactions
-
👍
3 reactions
-
🎉
1 reaction
-
🚀
1 reaction
3 people reacted
v3.6.0
Added
- Add support for arrays for the pie property
legendrank, so that it can be configured per slice [#7723], with thanks to @my-tien for the contribution!
- Add
hoversort layout attribute to sort unified hover label items by value [#7734], with thanks to @kimsehwan96 for the contribution!
Fixed
- Fix unexpected
ticklabelindex behavior when minor ticks are not shown [#7735], with thanks to @my-tien for the contribution!
- Fix issue where
hoveranywhere / clickanywhere would not emit hover and click events over editable shapes [#7788]
- Handle 'pixel' size mode for shape labels [#7790]
- Update box plot defaults to fix issue with calling
Plotly.react to switch from box to violin plot [#7811]
- Include shapes with
legendgroup specified when handling legend visibility toggling [#7813]
Full Changelog: v3.5.1...v3.6.0
Contributors
my-tien and kimsehwan96
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
my-tien and jqnatividad reacted with heart emoji
2 people reacted
v3.5.1
Changed
- Reduce NPM bundle size by removing unneeded files [#7746]
Fixed
- Fix bug where certain
axis.minallowed values could cause axis to be reversed [#7761]
Full Changelog: v3.5.0...v3.5.1
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
melon-dog, mes21, and AmirhoseinMesgari reacted with heart emoji
3 people reacted
|