Skip to content

Commit 068e9a5

Browse files
authored
Merge branch 'doc-prod' into patch-2
2 parents 9f36398 + 13d1d3f commit 068e9a5

File tree

660 files changed

+21592
-3948
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

660 files changed

+21592
-3948
lines changed

.circleci/config.yml

+158-59
Large diffs are not rendered by default.

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,6 @@ doc/check-or-enforce-order.py
5252
packages/javascript/jupyterlab-plotly/lib/
5353
packages/python/plotly/jupyterlab_plotly/labextension/
5454
packages/python/plotly/jupyterlab_plotly/nbextension/index.js*
55+
56+
test/percy/*.html
57+
test/percy/pandas2/*.html

CHANGELOG.md

+36-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,41 @@
22
All notable changes to this project will be documented in this file.
33
This project adheres to [Semantic Versioning](http://semver.org/).
44

5+
6+
## UNRELEASED
7+
8+
### Updated
9+
- Updated Plotly.js from version 2.24.1 to version 2.24.2. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2242----2023-06-09) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module.
10+
- `px` methods now accept data-frame-like objects that support a [dataframe interchange protocol](https://data-apis.org/dataframe-protocol/latest/index.html), such as polars, vaex, modin etc. This protocol has priority on `to_pandas` call, but will only be used if pandas>=2.0.2 is installed in the environment.
11+
12+
## [5.15.0] - 2023-06-08
13+
14+
### Updated
15+
- Updated Plotly.js from version 2.20.0 to version 2.24.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2241----2023-06-07) for more information. Notable changes include:
16+
- Add pattern to pie, funnelarea, sunburst, icicle and treemap traces [[#6601](https://github.com/plotly/plotly.js/pull/6601), [#6619](https://github.com/plotly/plotly.js/pull/6619), [#6622](https://github.com/plotly/plotly.js/pull/6622), [#6626](https://github.com/plotly/plotly.js/pull/6626), [#6627](https://github.com/plotly/plotly.js/pull/6627), [#6628](https://github.com/plotly/plotly.js/pull/6628), [#6629](https://github.com/plotly/plotly.js/pull/6629)], with thanks to @thierryVergult for the contribution!
17+
- Add `texttemplate` to shape.label for parametric shapes i.e. line, rect and circle [[#6527](https://github.com/plotly/plotly.js/pull/6527)],
18+
with thanks to the [Volkswagen](https://www.volkswagenag.com) Center of Excellence for Battery Systems for sponsoring development!
19+
- Add strict option to custom bundle command [[#6557](https://github.com/plotly/plotly.js/pull/6557)],
20+
with thanks to @CallumNZ for the contribution!
21+
- Add `legend` references to traces and `legend2`, `legend3`, etc. to layout,
22+
also add `visible` to legend i.e. to allow positioning multiple legends on a graph [[#6535](https://github.com/plotly/plotly.js/pull/6535)],
23+
this feature was anonymously sponsored: thank you to our sponsor!
24+
- Add `legend.xref` and `legend.yref` to enable container-referenced positioning of legends [[#6589](https://github.com/plotly/plotly.js/pull/6589)], with thanks to [Gamma Technologies](https://www.gtisoft.com/) for sponsoring the related development.
25+
- Add `colorbar.xref` and `colorbar.yref` to enable container-referenced positioning of colorbars [[#6593](https://github.com/plotly/plotly.js/pull/6593)], with thanks to [Gamma Technologies](https://www.gtisoft.com/) for sponsoring the related development.
26+
- `px` methods now accept data-frame-like objects that support a `to_pandas()` method, such as polars, cudf, vaex etc
27+
28+
### Fixed
29+
- Fixed another compatibility issue with Pandas 2.0, just affecting `px.*(line_close=True)` [[#4190](https://github.com/plotly/plotly.py/pull/4190)]
30+
- Empty pandas dataframe with facet row/column set no longer fails [[#4038](https://github.com/plotly/plotly.py/pull/4038)]
31+
- Added some rounding to the `make_subplots` function to handle situations where the user-input specs cause the domain to exceed 1 by small amounts [[#4153](https://github.com/plotly/plotly.py/pull/4153)]
32+
- Sanitize JSON output to prevent an XSS vector when graphs are inserted directly into HTML [[#4196](https://github.com/plotly/plotly.py/pull/4196)]
33+
- Fixed issue with shapes and annotations plotting on the wrong y axis when supplied with a specific axis in the `yref` parameter [[#4177](https://github.com/plotly/plotly.py/pull/4177)]
34+
- Remove `use_2to3` setuptools arg, which is invalid in the latest Python and setuptools versions [[#4206](https://github.com/plotly/plotly.py/pull/4206)]
35+
- Fix [#4066](https://github.com/plotly/plotly.py/issues/4066) JupyterLab v4 giving tiny default graph height [[#4227](https://github.com/plotly/plotly.py/pull/4227)]
36+
- Fixed issue with `colors.n_colors` where generated RGB color values were not being constrained to stay between 0 and 255 [[#4110](https://github.com/plotly/plotly.py/pull/4110)]
37+
- Fix streamline figure factory with recent versions of Numpy
38+
- Fix issue with shapes and annotations not drawing on correct axis [[#4177](https://github.com/plotly/plotly.py/pull/4177)]
39+
540
## [5.14.1] - 2023-04-05
641

742
### Fixed
@@ -10,7 +45,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
1045
## [5.14.0] - 2023-03-29
1146

1247
### Updated
13-
- Updated Plotly.js to from version 2.18.2 to version 2.20.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2200----2023-03-15) for more information. Notable changes include:
48+
- Updated Plotly.js from version 2.18.2 to version 2.20.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2200----2023-03-15) for more information. Notable changes include:
1449
- Add `title.automargin` to enable automatic top and bottom margining for both container and paper referenced titles [[#6428](https://github.com/plotly/plotly.js/pull/6428)],
1550
with thanks to [Gamma Technologies](https://www.gtisoft.com/) for sponsoring the related development.
1651
- Add `label` attribute to shapes [[#6454](https://github.com/plotly/plotly.js/pull/6454)], with thanks to the [Volkswagen](https://www.volkswagenag.com) Center of Excellence for Battery Systems for sponsoring development!

README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
## Quickstart
3535

36-
`pip install plotly==5.14.1`
36+
`pip install plotly==5.15.0`
3737

3838
Inside [Jupyter](https://jupyter.org/install) (installable with `pip install "jupyterlab>=3" "ipywidgets>=7.6"`):
3939

@@ -78,13 +78,13 @@ Built on top of [plotly.js](https://github.com/plotly/plotly.js), `plotly.py` is
7878
plotly.py may be installed using pip...
7979

8080
```
81-
pip install plotly==5.14.1
81+
pip install plotly==5.15.0
8282
```
8383

8484
or conda.
8585

8686
```
87-
conda install -c plotly plotly=5.14.1
87+
conda install -c plotly plotly=5.15.0
8888
```
8989

9090
### JupyterLab Support
@@ -106,7 +106,7 @@ The instructions above apply to JupyterLab 3.x. **For JupyterLab 2 or earlier**,
106106

107107
```
108108
# JupyterLab 2.x renderer support
109-
jupyter labextension install jupyterlab-plotly@5.14.1 @jupyter-widgets/jupyterlab-manager
109+
jupyter labextension install jupyterlab-plotly@5.15.0 @jupyter-widgets/jupyterlab-manager
110110
```
111111

112112
Please check out our [Troubleshooting guide](https://plotly.com/python/troubleshooting/) if you run into any problems with JupyterLab.

binder/requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
jupytext
2-
plotly==5.14.1
2+
plotly==5.15.0
33
jupyter
44
notebook
55
pandas==1.0.3

doc/apidoc/conf.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
# The short X.Y version
2929
version = ""
3030
# The full version, including alpha/beta/rc tags
31-
release = "5.14.1"
31+
release = "5.15.0"
3232

3333

3434
# -- General configuration ---------------------------------------------------

doc/python/3d-scatter-plots.md

+1
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ fig = px.scatter_3d(df, x='sepal_length', y='sepal_width', z='petal_width',
7070

7171
# tight layout
7272
fig.update_layout(margin=dict(l=0, r=0, b=0, t=0))
73+
fig.show()
7374
```
7475

7576
#### 3d scatter plots in Dash

doc/python/axes.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jupyter:
3333
thumbnail: thumbnail/axes.png
3434
---
3535

36-
This tutorial explain how to set the properties of [2-dimensional Cartesian axes](/python/figure-structure/#2d-cartesian-trace-types-and-subplots), namely [`go.layout.XAxis`](/python/reference/layout/xaxis/) and [`go.layout.YAxis`](python/reference/layout/xaxis/).
36+
This tutorial explain how to set the properties of [2-dimensional Cartesian axes](/python/figure-structure/#2d-cartesian-trace-types-and-subplots), namely [`go.layout.XAxis`](/python/reference/layout/xaxis/) and [`go.layout.YAxis`](/python/reference/layout/xaxis/).
3737

3838
Other kinds of subplots and axes are described in other tutorials:
3939

@@ -154,7 +154,7 @@ fig.update_yaxes(ticklabelposition="inside top", title=None)
154154
fig.show()
155155
```
156156

157-
#### Specifying Label Aliases
157+
#### Specifying Label Aliases
158158

159159
*New in 5.14*
160160

doc/python/colorscales.md

+34-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ jupyter:
66
extension: .md
77
format_name: markdown
88
format_version: '1.3'
9-
jupytext_version: 1.14.5
9+
jupytext_version: 1.14.6
1010
kernelspec:
1111
display_name: Python 3 (ipykernel)
1212
language: python
@@ -20,7 +20,7 @@ jupyter:
2020
name: python
2121
nbconvert_exporter: python
2222
pygments_lexer: ipython3
23-
version: 3.10.9
23+
version: 3.10.8
2424
plotly:
2525
description: How to set, create and control continuous color scales and color
2626
bars in scatter, bar, map and heatmap figures.
@@ -307,11 +307,11 @@ Using `labelalias` you can replace some labels on the `colorbar` with alternativ
307307
```python
308308
import plotly.graph_objects as go
309309

310-
import urllib
310+
import urllib.request as request
311311
import json
312312

313313
# Load heatmap data
314-
response = urllib.request.urlopen(
314+
response = request.urlopen(
315315
"https://raw.githubusercontent.com/plotly/datasets/master/custom_heatmap_colorscale.json")
316316
dataset = json.load(response)
317317

@@ -632,6 +632,36 @@ fig = go.Figure(go.Heatmap(
632632
fig.show()
633633
```
634634

635+
### Positioning Colorbars
636+
637+
Colorbars can be positioned by specifying x and y coordinates. By default, the x and y values are "paper" coordinates, which refer to the plot area. You can also use coordinates based on the "container" by setting `xref="container"` or `yref="container"`. The following example uses a container reference for the x position.
638+
639+
See the positioning section of [the figure data structure page](/python/figure-structure/#positioning-with-paper-container-coordinates-or-axis-domain-coordinates) for more details on "paper" vs "container" coordinates.
640+
641+
```python
642+
import plotly.graph_objects as go
643+
644+
import urllib
645+
import json
646+
647+
# Load heatmap data
648+
response = urllib.request.urlopen(
649+
"https://raw.githubusercontent.com/plotly/datasets/master/custom_heatmap_colorscale.json")
650+
dataset = json.load(response)
651+
652+
# Create and show figure
653+
fig = go.Figure(go.Heatmap(
654+
z=dataset["z"],
655+
colorbar=dict(
656+
x=0.2,
657+
xref="container",
658+
title="Surface Heat"
659+
)
660+
))
661+
662+
fig.show()
663+
```
664+
635665
### Reference
636666

637667
See https://plotly.com/python/reference/ for more information and chart attribute options!

doc/python/configuration-options.md

+19-10
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ import plotly.graph_objects as go
5353

5454
fig = go.Figure()
5555

56-
config = dict({'scrollZoom': True})
56+
config = {'scrollZoom': True}
5757

5858
fig.add_trace(
5959
go.Scatter(
@@ -244,6 +244,8 @@ fig.add_trace(
244244
y=[1, 3, 1]))
245245

246246
fig.update_layout(modebar_remove=['zoom', 'pan'])
247+
248+
fig.show()
247249
```
248250

249251
### Add optional shape-drawing buttons to modebar
@@ -253,16 +255,19 @@ fig.update_layout(modebar_remove=['zoom', 'pan'])
253255
Some modebar buttons of Cartesian plots are optional and have to be added explicitly, using the `modeBarButtonsToAdd` config attribute. These buttons are used for drawing or erasing shapes. See [the tutorial on shapes and shape drawing](python/shapes#drawing-shapes-on-cartesian-plots) for more details.
254256

255257
```python
256-
import plotly.graph_objects as go
257258
import plotly.express as px
259+
258260
df = px.data.iris()
261+
259262
fig = px.scatter(df, x='petal_width', y='sepal_length', color='species')
263+
260264
fig.update_layout(
261265
dragmode='drawopenpath',
262266
newshape_line_color='cyan',
263267
title_text='Draw a path to separate versicolor and virginica'
264268
)
265-
fig.show(config={'modeBarButtonsToAdd':['drawline',
269+
270+
fig.show(config={'modeBarButtonsToAdd': ['drawline',
266271
'drawopenpath',
267272
'drawclosedpath',
268273
'drawcircle',
@@ -276,10 +281,12 @@ fig.show(config={'modeBarButtonsToAdd':['drawline',
276281
The `layout.modebar.add` attribute can be used instead of the approach used above:
277282

278283
```python
279-
import plotly.graph_objects as go
280284
import plotly.express as px
285+
281286
df = px.data.iris()
287+
282288
fig = px.scatter(df, x='petal_width', y='sepal_length', color='species')
289+
283290
fig.update_layout(
284291
dragmode='drawopenpath',
285292
newshape_line_color='cyan',
@@ -292,6 +299,8 @@ fig.update_layout(
292299
'eraseshape'
293300
]
294301
)
302+
303+
fig.show()
295304
```
296305

297306
### Double-Click Delay
@@ -304,12 +313,12 @@ import plotly.graph_objects as go
304313
config = {'doubleClickDelay': 1000}
305314

306315
fig = go.Figure(go.Bar(
307-
y = [3, 5, 3, 2],
308-
x = ["2019-09-02", "2019-10-10", "2019-11-12", "2019-12-22"],
309-
texttemplate = "%{label}",
310-
textposition = "inside"))
316+
y=[3, 5, 3, 2],
317+
x=["2019-09-02", "2019-10-10", "2019-11-12", "2019-12-22"],
318+
texttemplate="%{label}",
319+
textposition="inside"))
311320

312-
fig.update_layout(xaxis = {'type': 'date'})
321+
fig.update_layout(xaxis={'type': 'date'})
313322

314323
fig.show(config=config)
315324
```
@@ -320,4 +329,4 @@ The same configuration dictionary that you pass to the `config` parameter of the
320329

321330
#### Reference
322331

323-
See config options at https://github.com/plotly/plotly.js/blob/master/src/plot_api/plot_config.js#L6
332+
See config options at https://github.com/plotly/plotly.js/blob/master/src/plot_api/plot_config.js

doc/python/figure-factory-subplots.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ Y, X = np.meshgrid(x, y)
6161
u = -1 - X**2 + Y
6262
v = 1 + X - Y**2
6363

64-
fig2 = ff.create_streamline(x, y, u, v, arrow_scale=.1, name='Steamline')
64+
fig2 = ff.create_streamline(x, y, u, v, arrow_scale=.1, name='Streamline')
6565
```
6666

6767
Edit the figures' x and y axes attributes to create subplots:

doc/python/funnel-charts.md

+25-3
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ jupyter:
55
text_representation:
66
extension: .md
77
format_name: markdown
8-
format_version: '1.2'
9-
jupytext_version: 1.3.0
8+
format_version: '1.3'
9+
jupytext_version: 1.14.6
1010
kernelspec:
11-
display_name: Python 3
11+
display_name: Python 3 (ipykernel)
1212
language: python
1313
name: python3
1414
plotly:
@@ -200,6 +200,28 @@ fig.update_layout(
200200
fig.show()
201201
```
202202

203+
### Pattern Fills
204+
205+
*New in 5.15*
206+
207+
Funnel area charts support [patterns](/python/pattern-hatching-texture/) (also known as hatching or texture) in addition to color. In this example, we add a pattern to the second stage of the funnel.
208+
209+
```python
210+
from plotly import graph_objects as go
211+
212+
colors = ["gold", "gold", "lightgreen", "lavender"]
213+
214+
fig = go.Figure(
215+
go.Funnelarea(
216+
labels=["Interview 1", "Interview 2", "Test", "Final Stage"],
217+
values=[100, 70, 40, 20],
218+
textfont_size=20,
219+
marker=dict(colors=colors, pattern=dict(shape=["", "/", "", ""])),
220+
)
221+
)
222+
fig.show()
223+
```
224+
203225
#### Reference
204226

205227
See [function reference for `px.(funnel)`](https://plotly.com/python-api-reference/generated/plotly.express.funnel) or https://plotly.com/python/reference/funnel/ and https://plotly.com/python/reference/funnelarea/ for more information and chart attribute options!

doc/python/getting-started.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,13 @@ We also encourage you to join the [Plotly Community Forum](http://community.plot
5858
`plotly` may be installed using `pip`:
5959

6060
```
61-
$ pip install plotly==5.14.1
61+
$ pip install plotly==5.15.0
6262
```
6363

6464
or `conda`:
6565

6666
```
67-
$ conda install -c plotly plotly=5.14.1
67+
$ conda install -c plotly plotly=5.15.0
6868
```
6969
This package contains everything you need to write figures to standalone HTML files.
7070

@@ -152,7 +152,7 @@ The instructions above apply to JupyterLab 3.x. **For JupyterLab 2 or earlier**,
152152

153153
```
154154
# JupyterLab 2.x renderer support
155-
jupyter labextension install jupyterlab-plotly@5.14.1 @jupyter-widgets/jupyterlab-manager
155+
jupyter labextension install jupyterlab-plotly@5.15.0 @jupyter-widgets/jupyterlab-manager
156156
```
157157

158158
Please check out our [Troubleshooting guide](/python/troubleshooting/) if you run into any problems with JupyterLab, particularly if you are using multiple python environments inside Jupyter.

0 commit comments

Comments
 (0)