Skip to content

Commit 317643d

Browse files
authored
Release 4.1.0 (#1704)
* Added 4.1 CHANGELOG * Update README installation instructions * Bump versions of plotlywidget and jupyterlab-plotly to 1.1.0 * Remove px __version__ var now that px is integrated into plotly.py * Fix facet row label ordering * Fix row_titles to honor start_cell specification
1 parent dec90ad commit 317643d

File tree

11 files changed

+61
-26
lines changed

11 files changed

+61
-26
lines changed

Diff for: CHANGELOG.md

+32
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,38 @@
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+
## [4.1.0] - 2019-08-06
6+
7+
### Updated
8+
- Updated Plotly.js to version 1.49.1. See the
9+
[plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#1491----2019-07-31)
10+
for more information.
11+
- Bars in the figures produced by the `create_gantt` figure factory may now be hidden by clicking on the legend ([#1665](https://github.com/plotly/plotly.py/pull/1665)). Special thanks to [@csabaszan](https://github.com/csabaszan) for this contribution!
12+
- Improved performance when serializing figures containing large numpy arrays ([#1690](https://github.com/plotly/plotly.py/pull/1690)). Special thanks to [@miriad](https://github.com/miriad) for this contribution!
13+
14+
### Added
15+
- Added new renderers for displaying figures from within the Databricks and CoCalc notebook services ([#1703](https://github.com/plotly/plotly.py/pull/1703))
16+
- Added `indicator` traces ([plotly/plotly.js#3978](https://github.com/plotly/plotly.js/pull/3978))
17+
- Added `choroplethmapbox` traces ([plotly/plotly.js#3988](https://github.com/plotly/plotly.js/pull/3988))
18+
- Added `densitymapbox` traces ([plotly/plotly.js#3993](https://github.com/plotly/plotly.js/pull/3993))
19+
- Added new mapbox `style` values: `open-street-map`, `carto-positron`, `carto-darkmatter`,
20+
`stamen-terrain`, `stamen-toner`, `stamen-watercolor` and `white-bg`
21+
that do not require a Mapbox access token ([plotly/plotly.js#3987](https://github.com/plotly/plotly.js/pull/3987), [plotly/plotly.js#4068](https://github.com/plotly/plotly.js/pull/4068))
22+
- Added support for `sourcetype` value `raster` and `image` and `type` `raster`
23+
for mapbox layout layers ([plotly/plotly.js#4006](https://github.com/plotly/plotly.js/pull/4006))
24+
- Added `below` attribute to `scattermapbox` traces ([plotly/plotly.js#4058](https://github.com/plotly/plotly.js/pull/4058))
25+
- Added support for `below: 'traces'` in mapbox layout layers ([plotly/plotly.js#4058](https://github.com/plotly/plotly.js/pull/4058))
26+
- Added `sourceattribution` attribute to mapbox layout layers ([plotly/plotly.js#4069](https://github.com/plotly/plotly.js/pull/4069))
27+
- Added `labelangle` and `labelside` attributes to `parcoords` traces ([plotly/plotly.js#3966](https://github.com/plotly/plotly.js/pull/3966))
28+
- Added `doubleClickDelay` config option ([plotly/plotly.js#3991](https://github.com/plotly/plotly.js/pull/3991))
29+
- Added `showEditInChartStudio` config option ([plotly/plotly.js#4061](https://github.com/plotly/plotly.js/pull/4061))
30+
31+
### Fixed
32+
- Fixed incorrect facet row ordering in figures generated by plotly.express functions ([plotly/plotly_express#129](https://github.com/plotly/plotly_express/issues/129))
33+
- Fixed "The truth value of an array with more than one element is ambiguous" error when specifying subplot titles as numpy array of strings ([#1685](https://github.com/plotly/plotly.py/pull/1685)). Special thanks to [@MrQubo](https://github.com/MrQubo) for this contribution!
34+
- The `line_3d` plotly express function was not visible by default when importing `*` from `plotly.express` ([#1667](https://github.com/plotly/plotly.py/pull/1667/files))
35+
36+
537
## [4.0.0] - 2019-07-16
638

739
This is a major release that includes many new features, and a few breaking changes. See the [version 4 announcement](https://community.plot.ly/t/introducing-plotly-py-4-0-0rc1/25639) for a summary of the important changes.

Diff for: README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,12 @@ Built on top of [plotly.js](https://github.com/plotly/plotly.js), `plotly.py` is
7878

7979
plotly.py may be installed using pip...
8080
```
81-
pip install plotly==4.0.0
81+
pip install plotly==4.1.0
8282
```
8383

8484
or conda.
8585
```
86-
conda install -c plotly plotly==4.0.0
86+
conda install -c plotly plotly==4.1.0
8787
```
8888

8989
### Jupyter Notebook Support
@@ -126,10 +126,10 @@ set NODE_OPTIONS=--max-old-space-size=4096
126126
jupyter labextension install @jupyter-widgets/[email protected] --no-build
127127
128128
# FigureWidget support
129-
jupyter labextension install plotlywidget@1.0.0 --no-build
129+
jupyter labextension install plotlywidget@1.1.0 --no-build
130130
131131
# and jupyterlab renderer support
132-
jupyter labextension install jupyterlab-plotly@1.0.0 --no-build
132+
jupyter labextension install jupyterlab-plotly@1.1.0 --no-build
133133
134134
# JupyterLab chart editor support (optional)
135135
jupyter labextension install [email protected] --no-build

Diff for: packages/javascript/jupyterlab-plotly/package-lock.json

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: packages/javascript/jupyterlab-plotly/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "jupyterlab-plotly",
3-
"version": "1.0.0",
3+
"version": "1.1.0",
44
"description": "The plotly JupyterLab extension",
55
"author": "The plotly.py team",
66
"license": "MIT",

Diff for: packages/javascript/plotlywidget/package-lock.json

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: packages/javascript/plotlywidget/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "plotlywidget",
3-
"version": "1.0.0",
3+
"version": "1.1.0",
44
"description": "The plotly JupyterLab extension",
55
"author": "The plotly.py team",
66
"license": "MIT",

Diff for: packages/python/plotly/plotly/_widget_version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
# for automated dev builds
33
#
44
# It is edited by hand prior to official releases
5-
__frontend_version__ = "^1.0.0"
5+
__frontend_version__ = "^1.1.0"

Diff for: packages/python/plotly/plotly/express/__init__.py

-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
data exploration and figure generation. See the gallery at https://plotly.github.io/plotly_express
44
"""
55

6-
__version__ = "0.3.0"
7-
86
from ._chart_types import ( # noqa: F401
97
scatter,
108
scatter_3d,

Diff for: packages/python/plotly/plotly/express/_core.py

+18-8
Original file line numberDiff line numberDiff line change
@@ -352,12 +352,18 @@ def configure_cartesian_marginal_axes(args, fig, orders):
352352

353353
# Add axis titles to non-marginal subplots
354354
y_title = get_decorated_label(args, args["y"], "y")
355-
for row in range(1, nrows):
356-
fig.update_yaxes(title_text=y_title, row=row, col=1)
355+
if args["marginal_x"]:
356+
fig.update_yaxes(title_text=y_title, row=1, col=1)
357+
else:
358+
for row in range(1, nrows + 1):
359+
fig.update_yaxes(title_text=y_title, row=row, col=1)
357360

358361
x_title = get_decorated_label(args, args["x"], "x")
359-
for col in range(1, ncols):
360-
fig.update_xaxes(title_text=x_title, row=1, col=col)
362+
if args["marginal_y"]:
363+
fig.update_xaxes(title_text=x_title, row=1, col=1)
364+
else:
365+
for col in range(1, ncols + 1):
366+
fig.update_xaxes(title_text=x_title, row=1, col=col)
361367

362368
# Configure axis type across all x-axes
363369
if "log_x" in args and args["log_x"]:
@@ -958,7 +964,7 @@ def make_figure(args, constructor, trace_patch={}, layout_patch={}):
958964
row = m.val_map[val]
959965
trace._subplot_row_val = val
960966
else:
961-
if trace_spec.marginal == "x":
967+
if has_marginal_x and trace_spec.marginal != "x":
962968
row = 2
963969
else:
964970
row = 1
@@ -1039,7 +1045,11 @@ def make_figure(args, constructor, trace_patch={}, layout_patch={}):
10391045
continue
10401046

10411047
_set_trace_grid_reference(
1042-
trace, fig.layout, fig._grid_ref, trace._subplot_row, trace._subplot_col
1048+
trace,
1049+
fig.layout,
1050+
fig._grid_ref,
1051+
nrows - trace._subplot_row + 1,
1052+
trace._subplot_col,
10431053
)
10441054

10451055
# Add traces, layout and frames to figure
@@ -1063,7 +1073,7 @@ def init_figure(
10631073
row_titles = [None] * nrows
10641074
for frame in frame_list:
10651075
for trace in frame["data"]:
1066-
row0 = nrows - trace._subplot_row
1076+
row0 = trace._subplot_row - 1
10671077
col0 = trace._subplot_col - 1
10681078

10691079
if isinstance(trace, go.Splom):
@@ -1122,7 +1132,7 @@ def init_figure(
11221132
specs=specs,
11231133
shared_xaxes="all",
11241134
shared_yaxes="all",
1125-
row_titles=row_titles,
1135+
row_titles=list(reversed(row_titles)),
11261136
column_titles=column_titles,
11271137
horizontal_spacing=horizontal_spacing,
11281138
vertical_spacing=vertical_spacing,

Diff for: packages/python/plotly/plotly/subplots.py

+1-6
Original file line numberDiff line numberDiff line change
@@ -753,12 +753,7 @@ def _checks(item, defaults):
753753

754754
if row_titles:
755755
domains_list = []
756-
if row_dir < 0:
757-
rows_iter = range(rows - 1, -1, -1)
758-
else:
759-
rows_iter = range(rows)
760-
761-
for r in rows_iter:
756+
for r in range(rows):
762757
domain_pair = domains_grid[r][-1]
763758
if domain_pair:
764759
domains_list.extend(domain_pair)

Diff for: packages/python/plotly/plotlywidget/static/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -12569,7 +12569,7 @@ module.exports = function identity(d) { return d; };
1256912569
/* 19 */
1257012570
/***/ (function(module, exports) {
1257112571

12572-
module.exports = {"name":"plotlywidget","version":"1.0.0","description":"The plotly JupyterLab extension","author":"The plotly.py team","license":"MIT","main":"src/index.js","repository":{"type":"git","url":"https://github.com/plotly/plotly.py"},"keywords":["jupyter","widgets","ipython","ipywidgets","plotly"],"files":["src/**/*.js","dist/*.js","style/*.*"],"scripts":{"build":"npm run build:src","build:src":"rimraf dist && tsc","clean":"rimraf dist/ && rimraf ../../python/plotly/plotlywidget/static'","prepublish":"webpack","test":"echo \"Error: no test specified\" && exit 1"},"devDependencies":{"webpack":"^3.10.0","rimraf":"^2.6.1","ify-loader":"^1.1.0","typescript":"~3.1.1"},"dependencies":{"plotly.js":"^1.49.1","@jupyter-widgets/base":"^2.0.0","lodash":"^4.17.4"},"jupyterlab":{"extension":"src/jupyterlab-plugin.js"}}
12572+
module.exports = {"name":"plotlywidget","version":"1.1.0","description":"The plotly JupyterLab extension","author":"The plotly.py team","license":"MIT","main":"src/index.js","repository":{"type":"git","url":"https://github.com/plotly/plotly.py"},"keywords":["jupyter","widgets","ipython","ipywidgets","plotly"],"files":["src/**/*.js","dist/*.js","style/*.*"],"scripts":{"build":"npm run build:src","build:src":"rimraf dist && tsc","clean":"rimraf dist/ && rimraf ../../python/plotly/plotlywidget/static'","prepublish":"webpack","test":"echo \"Error: no test specified\" && exit 1"},"devDependencies":{"webpack":"^3.10.0","rimraf":"^2.6.1","ify-loader":"^1.1.0","typescript":"~3.1.1"},"dependencies":{"plotly.js":"^1.49.1","@jupyter-widgets/base":"^2.0.0","lodash":"^4.17.4"},"jupyterlab":{"extension":"src/jupyterlab-plugin.js"}}
1257312573

1257412574
/***/ }),
1257512575
/* 20 */

0 commit comments

Comments
 (0)