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
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ This project adheres to [Semantic Versioning](http://semver.org/).

## Unreleased


## [7.0.0rc0] - 2026-07-29
Comment thread
emilykl marked this conversation as resolved.

### Removed
- Remove the deprecated Figure Factory functions `create_2d_density`, `create_annotated_heatmap`, `create_bullet`, `create_candlestick`, `create_choropleth`, `create_distplot`, `create_facet_grid`, `create_gantt`, `create_hexbin_mapbox`, `create_ohlc`, `create_scatterplotmatrix`, and `create_violin` [[#5627](https://github.com/plotly/plotly.py/pull/5627)]
- Remove support for Kaleido versions less than v1.0.0 for static image generation [[#5677](https://github.com/plotly/plotly.py/pull/5677)]
Expand All @@ -13,6 +16,21 @@ This project adheres to [Semantic Versioning](http://semver.org/).
### Fixed
- Raise a clear `ValueError` when an unsupported marginal plot type is passed to Plotly Express, instead of failing later with a cryptic `'NoneType' object has no attribute 'constructor'` message [[#5625](https://github.com/plotly/plotly.py/pull/5625)], with thanks to @eugen-goebel for the contribution!

### Updated
- Update plotly.js from version 3.6.0 to version 4.0.0-rc.0 [[#5673](https://github.com/plotly/plotly.py/pull/5673)]. This is a major-version release candidate with many changes. See the [plotly.js release notes](https://github.com/plotly/plotly.js/releases/tag/v4.0.0-rc.0) for the full list. The most significant changes include:
- 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!
- Add "Share Chart" modebar button for generating a chart-sharing link via Plotly Cloud [[#7909](https://github.com/plotly/plotly.js/pull/7909)]
- Remove `scattermapbox`, `choroplethmapbox`, `densitymapbox` trace types, the `mapbox` subplot, and the `mapboxAccessToken` config option [[#7860](https://github.com/plotly/plotly.js/pull/7860)]. Use the equivalent `*map` traces instead.
- The corresponding `graph_objects` and Plotly Express functions have also been removed in plotly.py; use the `map` versions instead
- Drop support for MathJax v2, and add support for v4 [[#7898](https://github.com/plotly/plotly.js/pull/7898)]. MathJax is the JavaScript library used for rendering mathematical equations in plotly charts.
- 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)]. There are some changes to supported color string formats as a result:
- `rgb()`/`rgba()` strings with decimal 0–1 fractions are no longer supported
- `hsv()` color strings are no longer supported
- New supported formats: `'#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%)'`
- 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)]. Most country names are handled exactly the same; a small number of legacy entries have been removed.
- 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 by default.
- Dynamically compute `center` and `zoom` values for `scattermap` and `densitymap` traces. The initial map view will now auto-fit to the trace data by default. Add `layout.map.fitbounds` attribute (default `'locations'`) to enable or disable auto-fitting behavior [[#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)]

## [6.8.0] - 2026-06-03

Expand Down
4 changes: 2 additions & 2 deletions js/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion js/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "jupyterlab-plotly",
"main": "lib/mimeExtension.js",
"version": "6.8.0",
"version": "7.0.0-rc0",
"repository": {
"type": "git",
"url": "https://github.com/plotly/plotly.py"
Expand Down
6 changes: 4 additions & 2 deletions plotly/io/_html.py
Original file line number Diff line number Diff line change
Expand Up @@ -280,12 +280,14 @@ def to_html(
include_mathjax = include_mathjax.lower()

mathjax_template = """\
<script src="{url}?config=TeX-AMS-MML_SVG"></script>"""
<script src="{url}"></script>"""

if include_mathjax == "cdn":
mathjax_script = (
mathjax_template.format(
url=("https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js")
url=(
"https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.2/es5/tex-svg.min.js"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It probably doesn't matter, but we list jsdelivr in our plotly.js README: https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/tex-svg.js

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel more comfortable staying with the same CDN provider. I'm happy to open a PR to update the plotly.js README to match.

)
)
+ _mathjax_config
)
Expand Down
4 changes: 2 additions & 2 deletions plotly/labextension/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "jupyterlab-plotly",
"main": "lib/mimeExtension.js",
"version": "6.8.0",
"version": "7.0.0-rc0",
"repository": {
"type": "git",
"url": "https://github.com/plotly/plotly.py"
Expand Down Expand Up @@ -33,7 +33,7 @@
"outputDir": "../plotly/labextension",
"webpackConfig": "./webpack.config.js",
"_build": {
"load": "static/remoteEntry.c5efd356a40443797e61.js",
"load": "static/remoteEntry.f8e1a963c4ab28e62ee4.js",
"mimeExtension": "./mimeExtension"
}
}
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion plotly/offline/offline.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ def _build_resize_script(plotdivid, plotly_root="Plotly"):


def _build_mathjax_script(url):
return '<script src="{url}?config=TeX-AMS-MML_SVG"></script>'.format(url=url)
return '<script src="{url}"></script>'.format(url=url)


def _get_jconfig(config=None):
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ classifiers = [
requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE.txt"]
version = "6.8.0"
version = "7.0.0rc0"
dependencies = [
"narwhals>=1.15.1",
"packaging"
Expand Down
12 changes: 4 additions & 8 deletions tests/test_core/test_offline/test_offline.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,9 @@
directory_script = '<script charset="utf-8" src="plotly.min.js"></script>'


mathjax_cdn = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"
mathjax_cdn = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.2/es5/tex-svg.min.js"

mathjax_config_str = "?config=TeX-AMS-MML_SVG"

mathjax_cdn_script = '<script src="{cdn}{config}"></script>'.format(
cdn=mathjax_cdn, config=mathjax_config_str
)
mathjax_cdn_script = f'<script src="{mathjax_cdn}"></script>'

mathjax_font = "STIX-Web"

Expand Down Expand Up @@ -369,7 +365,7 @@ def test_include_mathjax_path_html(self):
self.assertIn(plotly_config_script, html)
self.assertIn(PLOTLYJS, html)
self.assertNotIn(mathjax_cdn_script, html)
self.assertIn(other_cdn + mathjax_config_str, html)
self.assertIn(other_cdn, html)
self.assertIn(mathjax_font, html)

def test_include_mathjax_path_div(self):
Expand All @@ -379,7 +375,7 @@ def test_include_mathjax_path_div(self):
self.assertIn(plotly_config_script, html)
self.assertIn(PLOTLYJS, html)
self.assertNotIn(mathjax_cdn_script, html)
self.assertIn(other_cdn + mathjax_config_str, html)
self.assertIn(other_cdn, html)
self.assertIn(mathjax_font, html)

def test_auto_play(self):
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading