Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,54 @@ To see all merged commits on the master branch that will be part of the next plo

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

## [4.0.0-rc.0] -- 2026-07-21

### Added
- Add `minscale`, `maxscale` geo plot attributes [[#7371](https://github.com/plotly/plotly.js/pull/7371)], with thanks to @mojoaxel for the contribution!
- Enable TypeScript compatibility within the library and start exporting types [[#7680](https://github.com/plotly/plotly.js/pull/7680)]
- Add `quiver` trace type to visualize vector fields using arrows [[#7710](https://github.com/plotly/plotly.js/pull/7710)], with thanks to @degzhaus for the contribution!
- Use dashed markers in legend for shape traces with dash configured [[#7845](https://github.com/plotly/plotly.js/pull/7845)]
- Add `sort` option to Sankey links and nodes [[#7873](https://github.com/plotly/plotly.js/pull/7873)], with thanks to @adamreeve for the contribution!
- Add support for MathJax v4 [[#7898](https://github.com/plotly/plotly.js/pull/7898)]

### Removed
- **Breaking**: Remove `scattermapbox`, `choroplethmapbox`, `densitymapbox` trace types, the `mapbox` subplot, and the `mapboxAccessToken` config option [[#7860](https://github.com/plotly/plotly.js/pull/7860)]
- These traces have been deprecated since v3. Use the equivalent `*map` traces going forward.
- **Breaking**: Drop support for MathJax v2 [[#7898](https://github.com/plotly/plotly.js/pull/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](https://github.com/plotly/plotly.js/pull/7812)]
- Remove all `*src` attributes, as well as `layout.hidesources` attribute, from the schema [[#7829](https://github.com/plotly/plotly.js/pull/7829)]
- Remove internal `trace._fullInput` property and other dead code related to the removed `transforms` feature. No user-facing changes expected [[#7834](https://github.com/plotly/plotly.js/pull/7834)]

### Changed
- **Breaking**: Switch color processing library from [TinyColor](https://github.com/bgrins/TinyColor) to [color](https://github.com/Qix-/color) [[#7536](https://github.com/plotly/plotly.js/pull/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](https://github.com/plotly/plotly.js/pull/7684)]
- **Breaking**: Change `splom.axis.matches` default from `false` to `true` [[#7843](https://github.com/plotly/plotly.js/pull/7843)]
- **Breaking**: Replace `country-regex` with `country-iso-search` to search for country names in choropleth, scattergeo traces [[#7856](https://github.com/plotly/plotly.js/pull/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](https://github.com/plotly/plotly.js/pull/7861)]
- **Breaking:** Change `layout.geo.fitbounds` default from `false` to `'locations'` [[#7895](https://github.com/plotly/plotly.js/pull/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](https://github.com/plotly/plotly.js/pull/7825)]
- Use plot title as default filename for "Download plot" button [[#7828](https://github.com/plotly/plotly.js/pull/7828)]
- Change signature of `plots.graphJson()` function to remove `mode` argument [[#7829](https://github.com/plotly/plotly.js/pull/7829)]
- Upgrade `plotly/d3-sankey` to 0.12.3. [[#7830](https://github.com/plotly/plotly.js/pull/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](https://github.com/plotly/plotly.js/pull/7909)]

### Fixed
- Fix `histogram` autobin size for single-point traces in `overlay` mode on data updates via `Plotly.react` [[#7507](https://github.com/plotly/plotly.js/pull/7507)], with thanks to @Lexachoc for the contribution!
- Format tick labels correctly for small numbers in exponential notation [[#7768](https://github.com/plotly/plotly.js/pull/7768)], with thanks to @Hasnaathussain for the contribution!
- Fix crash when ordering categories by value (e.g. `sum descending`) with `null` coordinates [[#7855](https://github.com/plotly/plotly.js/pull/7855)]
- Fix `scattermap`, `densitymap` traces not showing all points by dynamically computing `center`, `zoom` values [[#7884](https://github.com/plotly/plotly.js/pull/7884), [#7913](https://github.com/plotly/plotly.js/pull/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](https://github.com/plotly/plotly.js/pull/7891)]
- Snap cartesian axis tick values to multiple of delta so custom `tickformat` (e.g. `"~r"`) no longer shows floating-point artifacts [[#7901](https://github.com/plotly/plotly.js/pull/7901)], with thanks to @arieleli01212 and @kirthi-b for the contribution!


## [3.7.0] -- 2026-07-03

### Changed
Expand Down
5 changes: 3 additions & 2 deletions build/plotcss.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,12 @@ var rules = {
"X .plotly-cloud-dialog .plotly-cloud-dialog-box": "box-sizing:border-box;min-width:300px;max-width:420px;padding:20px 24px;background-color:#fff;border:1px solid #e0e2e5;border-radius:4px;box-shadow:0 4px 16px rgba(0,0,0,.25);font-size:13px;color:#2a3f5f;",
"X .plotly-cloud-dialog .plotly-cloud-dialog-title": "font-size:16px;font-weight:bold;margin-bottom:12px;",
"X .plotly-cloud-dialog .plotly-cloud-dialog-message": "line-height:1.5;overflow-wrap:break-word;word-wrap:break-word;",
"X .plotly-cloud-dialog .plotly-cloud-dialog-message--hostname": "font-weight:bold;",
"X .plotly-cloud-dialog .plotly-cloud-dialog-buttons": "display:flex;justify-content:flex-end;margin-top:20px;",
"X .plotly-cloud-dialog .plotly-cloud-dialog-btn": "font-family:inherit;font-size:13px;padding:7px 16px;margin-left:8px;border-radius:3px;border:1px solid rgba(0,0,0,0);cursor:pointer;",
"X .plotly-cloud-dialog .plotly-cloud-dialog-btn:focus-visible": "outline:2px solid #447adb;outline-offset:1px;",
"X .plotly-cloud-dialog .plotly-cloud-dialog-btn--cancel": "background-color:#fff;border-color:#e0e2e5;color:#777;",
"X .plotly-cloud-dialog .plotly-cloud-dialog-btn--cancel:hover": "background-color:#f3f3f3;",
"X .plotly-cloud-dialog .plotly-cloud-dialog-btn--cancel": "background-color:#f3f3f3;margin-left:auto;color:#777;",
"X .plotly-cloud-dialog .plotly-cloud-dialog-btn--cancel:hover": "background-color:#e0e2e5;",
"X .plotly-cloud-dialog .plotly-cloud-dialog-btn--confirm": "background-color:#447adb;color:#fff;",
"X .plotly-cloud-dialog .plotly-cloud-dialog-btn--confirm:hover": "background-color:#1d3b84;",
Y: "font-family:\"Open Sans\",verdana,arial,sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;",
Expand Down
66 changes: 33 additions & 33 deletions dist/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,12 @@ The main plotly.js bundles weight in at:

| plotly.js | plotly.min.js | plotly.min.js + gzip | plotly-with-meta.js |
|-----------|---------------|----------------------|---------------------|
| 10.7 MB | 4.6 MB | 1.4 MB | 11 MB |
| 8.9 MB | 3.9 MB | 1.2 MB | 9.3 MB |

#### CDN links
> https://cdn.plot.ly/plotly-3.7.0.js
> https://cdn.plot.ly/plotly-4.0.0-rc.0.js

> https://cdn.plot.ly/plotly-3.7.0.min.js
> https://cdn.plot.ly/plotly-4.0.0-rc.0.min.js


#### npm packages
Expand All @@ -71,7 +71,7 @@ plotly.js also ships with several _partial_ bundles:
- [geo](#plotlyjs-geo)
- [gl3d](#plotlyjs-gl3d)
- [gl2d](#plotlyjs-gl2d)
- [mapbox](#plotlyjs-mapbox)
- [map](#plotlyjs-map)
- [finance](#plotlyjs-finance)
- [strict](#plotlyjs-strict)

Expand All @@ -91,12 +91,12 @@ The `basic` partial bundle contains trace modules `bar`, `pie` and `scatter`.

| Raw size | Minified size | Minified + gzip size |
|------|-----------------|------------------------|
| 2.7 MB | 1.1 MB | 366.4 kB |
| 2.7 MB | 1.1 MB | 369.7 kB |

#### CDN links
> https://cdn.plot.ly/plotly-basic-3.7.0.js
> https://cdn.plot.ly/plotly-basic-4.0.0-rc.0.js

> https://cdn.plot.ly/plotly-basic-3.7.0.min.js
> https://cdn.plot.ly/plotly-basic-4.0.0-rc.0.min.js


#### npm packages
Expand All @@ -114,12 +114,12 @@ The `cartesian` partial bundle contains trace modules `bar`, `box`, `contour`, `

| Raw size | Minified size | Minified + gzip size |
|------|-----------------|------------------------|
| 3.4 MB | 1.4 MB | 464.8 kB |
| 3.4 MB | 1.4 MB | 468.6 kB |

#### CDN links
> https://cdn.plot.ly/plotly-cartesian-3.7.0.js
> https://cdn.plot.ly/plotly-cartesian-4.0.0-rc.0.js

> https://cdn.plot.ly/plotly-cartesian-3.7.0.min.js
> https://cdn.plot.ly/plotly-cartesian-4.0.0-rc.0.min.js


#### npm packages
Expand All @@ -137,12 +137,12 @@ The `geo` partial bundle contains trace modules `choropleth`, `scatter` and `sca

| Raw size | Minified size | Minified + gzip size |
|------|-----------------|------------------------|
| 3 MB | 1.2 MB | 417.4 kB |
| 3.1 MB | 1.3 MB | 435.1 kB |

#### CDN links
> https://cdn.plot.ly/plotly-geo-3.7.0.js
> https://cdn.plot.ly/plotly-geo-4.0.0-rc.0.js

> https://cdn.plot.ly/plotly-geo-3.7.0.min.js
> https://cdn.plot.ly/plotly-geo-4.0.0-rc.0.min.js


#### npm packages
Expand All @@ -160,12 +160,12 @@ The `gl3d` partial bundle contains trace modules `cone`, `isosurface`, `mesh3d`,

| Raw size | Minified size | Minified + gzip size |
|------|-----------------|------------------------|
| 4.2 MB | 1.6 MB | 529.2 kB |
| 4.2 MB | 1.6 MB | 532.5 kB |

#### CDN links
> https://cdn.plot.ly/plotly-gl3d-3.7.0.js
> https://cdn.plot.ly/plotly-gl3d-4.0.0-rc.0.js

> https://cdn.plot.ly/plotly-gl3d-3.7.0.min.js
> https://cdn.plot.ly/plotly-gl3d-4.0.0-rc.0.min.js


#### npm packages
Expand All @@ -183,12 +183,12 @@ The `gl2d` partial bundle contains trace modules `parcoords`, `scatter`, `scatte

| Raw size | Minified size | Minified + gzip size |
|------|-----------------|------------------------|
| 3.8 MB | 1.5 MB | 523.1 kB |
| 3.9 MB | 1.5 MB | 526.5 kB |

#### CDN links
> https://cdn.plot.ly/plotly-gl2d-3.7.0.js
> https://cdn.plot.ly/plotly-gl2d-4.0.0-rc.0.js

> https://cdn.plot.ly/plotly-gl2d-3.7.0.min.js
> https://cdn.plot.ly/plotly-gl2d-4.0.0-rc.0.min.js


#### npm packages
Expand All @@ -198,26 +198,26 @@ The `gl2d` partial bundle contains trace modules `parcoords`, `scatter`, `scatte

---

### plotly.js mapbox
### plotly.js map

The `mapbox` partial bundle contains trace modules `choroplethmapbox`, `densitymapbox`, `scatter` and `scattermapbox`.
The `map` partial bundle contains trace modules `choroplethmap`, `densitymap`, `scatter` and `scattermap`.

#### Stats

| Raw size | Minified size | Minified + gzip size |
|------|-----------------|------------------------|
| 4.5 MB | 1.9 MB | 582.2 kB |
| 4.2 MB | 2 MB | 632.3 kB |

#### CDN links
> https://cdn.plot.ly/plotly-mapbox-3.7.0.js
> https://cdn.plot.ly/plotly-map-4.0.0-rc.0.js

> https://cdn.plot.ly/plotly-mapbox-3.7.0.min.js
> https://cdn.plot.ly/plotly-map-4.0.0-rc.0.min.js


#### npm packages
> [plotly.js-mapbox-dist](https://www.npmjs.com/package/plotly.js-mapbox-dist)
> [plotly.js-map-dist](https://www.npmjs.com/package/plotly.js-map-dist)

> [plotly.js-mapbox-dist-min](https://www.npmjs.com/package/plotly.js-mapbox-dist-min)
> [plotly.js-map-dist-min](https://www.npmjs.com/package/plotly.js-map-dist-min)

---

Expand All @@ -229,12 +229,12 @@ The `finance` partial bundle contains trace modules `bar`, `candlestick`, `funne

| Raw size | Minified size | Minified + gzip size |
|------|-----------------|------------------------|
| 2.9 MB | 1.2 MB | 400 kB |
| 2.9 MB | 1.2 MB | 403.5 kB |

#### CDN links
> https://cdn.plot.ly/plotly-finance-3.7.0.js
> https://cdn.plot.ly/plotly-finance-4.0.0-rc.0.js

> https://cdn.plot.ly/plotly-finance-3.7.0.min.js
> https://cdn.plot.ly/plotly-finance-4.0.0-rc.0.min.js


#### npm packages
Expand All @@ -246,18 +246,18 @@ The `finance` partial bundle contains trace modules `bar`, `candlestick`, `funne

### plotly.js strict

The `strict` partial bundle contains trace modules `bar`, `barpolar`, `box`, `candlestick`, `carpet`, `choropleth`, `choroplethmapbox`, `cone`, `contour`, `contourcarpet`, `densitymapbox`, `funnel`, `funnelarea`, `heatmap`, `histogram`, `histogram2d`, `histogram2dcontour`, `icicle`, `image`, `indicator`, `isosurface`, `mesh3d`, `ohlc`, `parcats`, `parcoords`, `pie`, `sankey`, `scatter`, `scattergl`, `scatter3d`, `scattercarpet`, `scattergeo`, `scattermapbox`, `scatterpolar`, `scatterpolargl`, `scattersmith`, `scatterternary`, `splom`, `streamtube`, `sunburst`, `surface`, `table`, `treemap`, `violin`, `volume` and `waterfall`.
The `strict` partial bundle contains trace modules `bar`, `barpolar`, `box`, `candlestick`, `carpet`, `choropleth`, `choroplethmap`, `cone`, `contour`, `contourcarpet`, `densitymap`, `funnel`, `funnelarea`, `heatmap`, `histogram`, `histogram2d`, `histogram2dcontour`, `icicle`, `image`, `indicator`, `isosurface`, `mesh3d`, `ohlc`, `parcats`, `parcoords`, `pie`, `sankey`, `scatter`, `scattergl`, `scatter3d`, `scattercarpet`, `scattergeo`, `scattermap`, `scatterpolar`, `scatterpolargl`, `scattersmith`, `scatterternary`, `splom`, `streamtube`, `sunburst`, `surface`, `table`, `treemap`, `violin`, `volume` and `waterfall`.

#### Stats

| Raw size | Minified size | Minified + gzip size |
|------|-----------------|------------------------|
| 11.5 MB | 5 MB | 1.5 MB |
| 9.7 MB | 4.2 MB | 1.3 MB |

#### CDN links
> https://cdn.plot.ly/plotly-strict-3.7.0.js
> https://cdn.plot.ly/plotly-strict-4.0.0-rc.0.js

> https://cdn.plot.ly/plotly-strict-3.7.0.min.js
> https://cdn.plot.ly/plotly-strict-4.0.0-rc.0.min.js


#### npm packages
Expand Down
Loading
Loading