Changelog
### 5.13.1
```
Updated
- Updated Plotly.js to from version 2.18.0 to version 2.18.2. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2182----2023-02-15) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module.
- Updated distutils.Version to packaging.Version [3897](https://github.com/plotly/plotly.py/pull/3897)] and [#4055](https://github.com/plotly/plotly.py/pull/4055)]
```
### 5.13.0
```
Updated
- Updated Plotly.js to from version 2.17.1 to version 2.18.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2180----2023-01-19) for more information. Notable changes include:
- Add `sync` tickmode option [[6356](https://github.com/plotly/plotly.js/pull/6356), [#6443](https://github.com/plotly/plotly.js/pull/6443)], with thanks to filipesantiagoAM and VictorBezak for the contribution!
- Build process now uses Node 18.x and version 2 lockfile (should be an invisible change for users) [[4034](https://github.com/plotly/plotly.py/pull/4034)]
Fixed
- `write_html()` now explicitly encodes output as UTF-8 because Plotly.js' bundle contains such characters [[4021](https://github.com/plotly/plotly.py/pull/4021)] and [[#4022](https://github.com/plotly/plotly.py/pull/4022)]
- fixed `iframe` renderer regression from 5.12 and also fixed error when this renderer was used in the very first cell in a notebook [[4036](https://github.com/plotly/plotly.py/pull/4036)]
```
### 5.12.0
```
Updated
- Support for ipywidgets 8 [[3930](https://github.com/plotly/plotly.py/pull/3930)]
- Updated Plotly.js to from version 2.16.1 to version 2.17.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2170----2022-12-22) for more information. Notable changes include:
- Add `shift` and `autoshift` to cartesian y axes to help avoid overlapping of multiple axes [[6334](https://github.com/plotly/plotly.js/pull/6334)],
with thanks to [Gamma Technologies](https://www.gtisoft.com) for sponsoring the related development!
- Introduce group attributes for `scatter` trace i.e. `alignmentgroup`, `offsetgroup`, `scattermode` and `scattergap` [[6381](https://github.com/plotly/plotly.js/pull/6381)],
this feature was anonymously sponsored: thank you to our sponsor!
- Add `marker.cornerradius` attribute to `treemap` trace [[6351](https://github.com/plotly/plotly.js/pull/6351)]
Fixed
- Fixed the usage of some deprecated NumPy types which were removed in NumPy 1.24 [[3997](https://github.com/plotly/plotly.py/pull/3997)]
- Fixed bug for trendlines with datetime axes [[3683](https://github.com/plotly/plotly.py/issues/3683)]
- `marker.angle` attribute now accepts iterables where appropriate [[4013](https://github.com/plotly/plotly.py/issues/4013)]
- `selector=0` now correctly returns the first trace in `.select_traces()` and related methods [[3817](https://github.com/plotly/plotly.py/issues/3817)]
```
### 5.11.0
```
Updated
- Updated Plotly.js to from version 2.14.0 to version 2.16.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2161----2022-10-21) for more information. Notable changes include:
- Add clustering options to `scattermapbox` [[5827](https://github.com/plotly/plotly.js/pull/5827)],
with thanks to elben10 for the contribution!
- Add bounds to mapbox suplots [[6339](https://github.com/plotly/plotly.js/pull/6339)]
- Add `angle`, `angleref` and `standoff` to `marker` and add `backoff` to `line`; also introduce new arrow symbols to facilitate drawing networks [[6297](https://github.com/plotly/plotly.js/pull/6297)]
- Add `minreducedwidth` and `minreducedheight` to layout for increasing control over automargin [[6307](https://github.com/plotly/plotly.js/pull/6307)]
- Add `entrywidth` and `entrywidthmode` to legend [[6202](https://github.com/plotly/plotly.js/pull/6202), [#6324](https://github.com/plotly/plotly.js/pull/6324)]
```
### 5.10.0
```
Updated
- Updated Plotly.js to from version 2.12.1 to version 2.14.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2140----2022-08-10) for more information. Notable changes include:
- Add support for `sankey` links with arrows
- Add `selections`, `newselection` and `activeselection` layout attributes to have persistent and editable selections over cartesian subplots
- Add `unselected.line.color` and `unselected.line.opacity` options to `parcoords` trace
- Display Plotly's new logo in the modebar
```
### 5.9.0
```
Added
- `pattern_shape` options now available in `px.timeline()` [3774](https://github.com/plotly/plotly.py/pull/3774)
- `facet_*` and `category_orders` now available in `px.pie()` [3775](https://github.com/plotly/plotly.py/pull/3775)
Performance
- `px` methods no longer call `groupby` on the input dataframe when the result would be a single group, and no longer groups by a lambda, for significant speedups [3765](https://github.com/plotly/plotly.py/pull/3765) with thanks to [jvdd](https://github.com/jvdd)
Updated
- Allow non-string extras in `flaglist` attributes, to support upcoming changes to `ax.automargin` in plotly.js [plotly.js6193](https://github.com/plotly/plotly.js/pull/6193), [#3749](https://github.com/plotly/plotly.py/pull/3749)
```
### 5.8.2
```
Fixed
- Fixed a syntax error that caused rendering issues in Databricks notebooks and likely elsewhere. [3763](https://github.com/plotly/plotly.py/pull/3763) with thanks to [fwetdb](https://github.com/fwetdb)
```
### 5.8.1
```
(no changes, due to a mixup with the build process!)
```
### 5.8.0
```
Fixed
- Improve support for type checking and IDE auto-completion by bypassing lazy-loading when type checking. [3425](https://github.com/plotly/plotly.py/pull/3425) with thanks to [JP-Ellis](https://github.com/JP-Ellis)
- line dash-style validators are now correctly used everywhere so that values like `10px 2px` are accepted [3722](https://github.com/plotly/plotly.py/pull/3722)
- Resolved various deprecation warning messages and compatibility issues with upstream dependencies and Python 3.11, plus removed dependency on `six`, with thanks to [maresb](https://github.com/maresb), [hugovk](https://github.com/hugovk), [tirkarthi](https://github.com/tirkarthi), [martinRenou](https://github.com/martinRenou), and [BjoernLudwigPTB](https://github.com/BjoernLudwigPTB)
- Better support for MathJax 3 [3706](https://github.com/plotly/plotly.py/pull/3706)
Added
- Type annotations for Plotly Express functions and chainable `go.Figure` methods, for better IDE auto-completion [3708](https://github.com/plotly/plotly.py/pull/3708)
Updated
- Updated Plotly.js to from version 2.11.1 to version 2.12.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v2.12.1/CHANGELOG.md#2121----2022-05-09) for more information. Notable changes include:
- Add `minor` ticks to cartesian axes
- Add `griddash` option to most axes
```
### 5.7.0
```
Added
- added `pattern_shape` options to `px.area()` [3668](https://github.com/plotly/plotly.py/issues/3668)
Updated
- Updated Plotly.js to from version 2.9.0 to version 2.11.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2111----2022-03-15) for more information. Notable changes include:
- Add `fillpattern` options to `scatter` trace
- Various JS-specific improvements such as MathJax 3.0 support
```
### 5.6.0
```
Updated
- Updated Plotly.js to from version 2.8.3 to version 2.9.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#290----2022-02-04) for more information. Notable changes include:
- Implement `ticklabelstep` to reduce labels on cartesian axes and colorbars
- Display the version of plotly.js when hovering over the modebar
```
### 5.5.0
```
Added
- `text_auto` argument to `px.bar`, `px.histogram`, `px.density_heatmap`, `px.imshow` [3518](https://github.com/plotly/plotly.py/issues/3518)
- Deprecated `ff.create_annotated_heatmap`, `ff.create_county_choropleth`, `ff.create_gantt` [3518](https://github.com/plotly/plotly.py/issues/3518)
- `div_id` argument to `pio.to_html`, `pio.write_html`, `fig.to_html` and `fig.write_html` to optionally make its IDs deterministic [3487](https://github.com/plotly/plotly.py/issues/3487) with thanks to [Skn0tt](https://github.com/Skn0tt)
Fixed
- Fixed ValueError when `ff.create_annotated_heatmap` passes `rgba()` colors into `to_rgb_color_list` [3478](https://github.com/plotly/plotly.py/issues/3478) with thanks to [janosh](https://github.com/janosh)
Updated
- Updated Plotly.js to from version 2.6.3 to version 2.8.3. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#280----2021-12-10) for more information. Notable changes include:
- Horizontal color bars
- `texttemplate` for histogram-like and heatmap-like traces
```
### 5.4.0
```
Fixed
- Fixed error when serializing dict with mix of string and non-string keys [3380](https://github.com/plotly/plotly.py/issues/3380)
Updated
- The JSON serialization engines no longer sort their keys [3380](https://github.com/plotly/plotly.py/issues/3380)
- Updated Plotly.js to from version 2.4.2 to version 2.6.3. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#263----2021-11-12) for more information. Notable changes include:
- New subplot type `smith` that supports `scattersmith` trace types for visualizing data in the complex domain
- Changes to Plotly.js packaging
```
### 5.3.1
```
Updated
- Updated Plotly.js to from version 2.4.1 to version 2.4.2. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#240----2021-08-27) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
- Bug fix for rendering unified hover labels in classic Jupyter Notebooks
```
### 5.3.0
```
Updated
- Updated Plotly.js to from version 2.3.1 to version 2.4.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#240----2021-08-27) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
- Added `legend.groupclick` options
- Provide bbox of hover items in event data
```
### 5.2.2
```
Fixed
- Fixed error when using the orjson engine with non-string keys [3351](https://github.com/plotly/plotly.py/pull/3351)
```
### 5.2.1
```
Updated
- Updated Plotly.js to from version 2.2.0 to version 2.3.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#231----2021-07-30) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
- new projections in `geo` subplots from a more recent version of `d3-geo`
- new number-formatting directives from a more recent version of `d3-format`
- Improve rendering of `scattergl`, `splom` and `parcoords` by implementing `plotGlPixelRatio` for those traces
- performance improvements and bug fixes
Added
- Extra flags were added to the `gapminder` and `stocks` dataset to facilitate testing, documentation and demos [3305](https://github.com/plotly/plotly.py/issues/3305)
- All line-like Plotly Express functions now accept `markers` argument to display markers, and all but `line_mapbox` accept `symbol` to map a field to the symbol attribute, similar to scatter-like functions [3326](https://github.com/plotly/plotly.py/issues/3326)
- `px.scatter` and `px.density_contours` now support new `trendline` types `'rolling'`, `'expanding'` and `'ewm'` [2997](https://github.com/plotly/plotly.py/pull/2997)
- `px.scatter` and `px.density_contours` now support new `trendline_options` argument to parameterize trendlines, with support for constant control and log-scaling in `'ols'` and specification of the fraction used for `'lowess'`, as well as pass-through to Pandas for `'rolling'`, `'expanding'` and `'ewm'` [2997](https://github.com/plotly/plotly.py/pull/2997)
- `px.scatter` and `px.density_contours` now support new `trendline_scope` argument that accepts the value `'overall'` to request a single trendline for all traces, including across facets and animation frames [2997](https://github.com/plotly/plotly.py/pull/2997)
- A new `px.ecdf()` function for Empirical Cumulative Distribution Functions [3330](https://github.com/plotly/plotly.py/pull/3330)
Fixed
- Fixed regression introduced in version 5.0.0 where pandas/numpy arrays with `dtype` of Object were being converted to `list` values when added to a Figure ([3292](https://github.com/plotly/plotly.py/issues/3292), [#3293](https://github.com/plotly/plotly.py/pull/3293))
- Better detection of Chrome and Chromium browsers in the Renderers framework, especially on Linux ([3278](https://github.com/plotly/plotly.py/pull/3278)) with thanks to [c-chaitanya](https://github.com/c-chaitanya) for the contribution
```
### 5.1.0
```
- Updated Plotly.js to from version 2.1.0 to version 2.2.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#220----2021-06-28) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
- new `<trace>.legendgrouptitle` attribute for legend group titles
- new `%h` text formatting directive for half-years
- performance improvements and bug fixes
```
### 5.0.0
```
Updated/Changed
Items in this section may be considered backwards-incompatible changes for the purposes of [Semantic Versioning](http://semver.org/) but we expect the vast majority of users to be able to upgrade to version 5.0 without encountering any issues.
- **Dropped support for Python older than 3.6** [3160](https://github.com/plotly/plotly.py/pull/3160)
- Updated Plotly.js to from version 1.58.4 to version 2.1.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#210----2021-06-18) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
- dropped support for IE9 and IE10
- dropped support for long-deprecated `graph_objects` like `area` traces and `scatter.(t|r)` and `layout.(radial|angular)axis` attributes
- modebar no longer has hovermode or spikeline buttons by default (can be added back with `fig.update_layout(modebar_add=["v1hovermode", "toggleSpikeLines"])`)
- "Aa" text no longer appears on legend items unless `mode="text"`
- In `bar` traces, `textposition` now defaults to `"auto"`
- Font size for legend and colorbar titles now matches axis title font size (slightly bigger)
- deprecated `heatmapgl`, `pointcloud` traces as well as all `transform` attributes
- Combined `plotlywidget` into `jupyterlab-plotly` and packaged them as a federated extension [3142](https://github.com/plotly/plotly.py/pull/3142) with massive thanks to [fcollonval](https://github.com/fcollonval) for the contribution
- In addition to this change, large Plotly.js bundles are now lazily loaded on-demand by JupyterLab
- Plotly.js CDN url will now be versioned by default for HTML exports using `include_plotlyjs='cdn'` and for "connected" renderers. [2961](https://github.com/plotly/plotly.py/pull/2961) with thanks to [adehad](https://github.com/adehad) for the contribution
- Recommending Kaleido by default over Orca [3094](https://github.com/plotly/plotly.py/pull/3094)
- Replaced `retrying` dependency with `tenacity` [2911](https://github.com/plotly/plotly.py/pull/2911) with thanks to [jmsmdy](https://github.com/jmsmdy) for the contribution
- Plotly Express now always takes into account every value in `category_orders` when computing discrete mappings (color, symbol, line-dash, pattern-shapes) as well as facets, even those values which are absent in the data [3247](https://github.com/plotly/plotly.py/pull/3247)
Added
- Additions due to bumping Plotly.js from 1.58.4 to 2.1.0 (see [changelog]((https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#210----2021-06-18))):
- New `icicle` trace type, with thanks to [Kully](https://github.com/Kully) and [mtwichan](https://github.com/mtwichan) of [Zyphr](https://www.zyphr.ca/) for their contribution!
- New `marker.pattern` options for `bar`-like trace types with thanks to [s417-lama](https://github.com/s417-lama) for the contribution!
- New `legendrank` attribute to control rank of traces within legends
- Plotly Express' `px.bar()`, `px.histogram()` and `px.bar_polar()` now support the `pattern_shape` argument [3252](https://github.com/plotly/plotly.py/pull/3252)
- New Plotly Express `px.icicle()` function, with thanks to [Kully](https://github.com/Kully) and [mtwichan](https://github.com/mtwichan) of [Zyphr](https://www.zyphr.ca/) for their contribution! [#3256](https://github.com/plotly/plotly.py/pull/3256)
- New functions in `plotly.colors`: `get_colorscale()` and `sample_colorscale()` [3136](https://github.com/plotly/plotly.py/pull/3136) and [#3186](https://github.com/plotly/plotly.py/pull/3186) with thanks to [CarlAndersson](https://github.com/CarlAndersson) for the contributions
- Faster JSON encoding when `orjson` is present [2955](https://github.com/plotly/plotly.py/pull/2955)
Fixed
- Pandas and Numpy datetime serialization fixes [3022](https://github.com/plotly/plotly.py/pull/3022)
- Fixed selected points of histograms in FigureWidget [2771](https://github.com/plotly/plotly.py/pull/2771) with thanks to [meffmadd](https://github.com/meffmadd) for the contribution
- Static image export now honors `layout.(width|height)`[3240](https://github.com/plotly/plotly.py/pull/3240)
- Improvements to "matplotlylib" conversion utility in `plotly.tools.mpl_to_plotly()` with thanks to [fdion](https://github.com/fdion) [#3143](https://github.com/plotly/plotly.py/pull/3143)
```
### 4.14.3
```
- `px.timeline()` now allows `hover_data` formatting of start and end times [3018](https://github.com/plotly/plotly.py/pull/3018)
- Small change to packaging of `plotlywidget` extension for JupyterLab 3 [3021](https://github.com/plotly/plotly.py/pull/3021)
```
### 4.14.2
```
Updated
- JupyterLab extensions now compatible with JupyterLab 3.x [3016](https://github.com/plotly/plotly.py/pull/3016)
- Updated Plotly.js to version 1.58.4. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.58.4/CHANGELOG.md) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
- fixes for rendering 3d plots on recent Safari versions
- fixes to inside ticklabels
- regression fixes
Fixed
- `px.histogram()` Y-axis labels now take into account `histnorm` and `barnorm` [2989](https://github.com/plotly/plotly.py/pull/2989)
- `px.histogram()` `marginal` and `facet_*` now work correctly together [3014](https://github.com/plotly/plotly.py/pull/3014)
```
### 4.14.1
```
Updated
- Updated Plotly.js to version 1.58.2. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.58.0/CHANGELOG.md) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
- fixes for new `ticklabelposition` attribute
- fixes for a regression related to treemaps in the previous version
```
### 4.14.0
```
Added
- `px.imshow` now supports `facet_col` and `animation_frame` arguments for visualizing 3-d and 4-d images [2746](https://github.com/plotly/plotly.py/pull/2746)
- `px.defaults` now supports `color_discrete_map`, `symbol_map`, `line_dash_map`, `labels` and `category_orders` as well as a `.reset()` method [2957](https://github.com/plotly/plotly.py/pull/2957)
Fixed
- axes will now auto-type numeric strings as categorical data rather than linear in the default templates [2951](https://github.com/plotly/plotly.py/pull/2951)
Updated
- Updated Plotly.js to version 1.58.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.58.0/CHANGELOG.md) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
- a new `ticklabelposition` attribute to enable positioning tick labels inside the plotting area
- better support for `scaleanchor` and `matches` on cartesian axes for matched square subplots
- a new `autotypenumbers` attribute which is now set to `strict` in the default templates
- various fixes relating to `automargins` for small figures
```
### 4.13.0
```
Added
- `px.choropleth`, `px.scatter_geo` and `px.line_geo` now support faceting as well as `fitbounds` and `basemap_visible` [2923](https://github.com/plotly/plotly.py/pull/2923)
- `px.scatter_geo` and `px.line_geo` now support `geojson`/`featureidkey` input [2923](https://github.com/plotly/plotly.py/pull/2923)
- `px.scatter_geo` now supports `symbol` [2923](https://github.com/plotly/plotly.py/pull/2923)
- `go.Figure` now has a `set_subplots` method to set subplots on an already
existing figure. [2866](https://github.com/plotly/plotly.py/pull/2866)
- Added `Turbo` colorscale and fancier swatch display functions
[2882](https://github.com/plotly/plotly.py/pull/2882)
- A utility function `image_array_to_data_uri` has been added in
`plotly.utils`, in order to transform NumPy arrays to data b64 URIs (which
can be passed to the source parameter of `go.Image`, or to layout images).
[2879](https://github.com/plotly/plotly.py/pull/2879)
- the `selector` argument to updater/selector functions now accepts `int`s and `str`s
[2894](https://github.com/plotly/plotly.py/pull/2894)
Updated
- the JSON serialization of plotly figures has been accelerated thanks to a
different handling of Infinity and NaN values. For example, a figure with a
1000x1000 Heatmap should now serialize 2x faster. [2880](https://github.com/plotly/plotly.py/pull/2880)
- Coding mistakes with "magic underscores" now return significantly more ergonomic error
messages [2843](https://github.com/plotly/plotly.py/pull/2843)
- Error messages related to impossible subplot geometries are now much more helpful
[2897](https://github.com/plotly/plotly.py/pull/2897)
Fixed
- `px.scatter_geo` support for `text` is fixed [2923](https://github.com/plotly/plotly.py/pull/2923)
- the `x` and `y` parameters of `px.imshow` are now used also in the case where
an Image trace is used (for RGB data or with `binary_string=True`). However,
only numerical values are accepted (while the Heatmap trace allows date or
string values for `x` and `y`). [2761](https://github.com/plotly/plotly.py/pull/2761)
```
### 4.12.0
```
Added
- For `add_trace`, `add_shape`, `add_annotation` and `add_layout_image`, the `row` and/or `col` argument now also accept the string `"all"`. `row="all"` adds the object to all the subplot rows and `col="all"` adds the object to all the subplot columns. ([2840](https://github.com/plotly/plotly.py/pull/2840))
- Shapes that reference the plot axes in one dimension and the data in another dimension can be added with the new `add_hline`, `add_vline`, `add_hrect`, `add_vrect` functions, which also support the `row="all"` and `col="all"` arguments. ([2840](https://github.com/plotly/plotly.py/pull/2840))
- The `add_trace`, `add_shape`, `add_annotation`, `add_layout_image`, `add_hline`, `add_vline`, `add_hrect`, `add_vrect` functions accept an argument `exclude_empty_subplots` which if `True`, only adds the object to subplots already containing traces or layout objects. This is useful in conjunction with the `row="all"` and `col="all"` arguments. ([2840](https://github.com/plotly/plotly.py/pull/2840))
- For all `go.Figure` functions accepting a selector argument (e.g., `select_traces`), this argument can now also be a function which is passed each relevant graph object (in the case of `select_traces`, it is passed every trace in the figure). For graph objects where this function returns true, the graph object is included in the selection. ([2844](https://github.com/plotly/plotly.py/pull/2844))
Added
- Better magic underscore error messages. For example, `some_fig.update_layout(geo_ltaxis_showgrid=True)` shows `Bad property path:\ngeo_ltaxis_showgrid\n ^` and lists the valid properties for `geo`.
Updated
- Updated Plotly.js to version 1.57.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.57.1/CHANGELOG.md) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module.
```
### 4.11.0
```
Updated
- Updated Plotly.js to version 1.56.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.56.0/CHANGELOG.md) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module.
```
### 4.10.0
```
Added
- Added `plotly.io.full_figure_for_development()` and `plotly.graph_objects.Figure.full_figure_for_development()` ([2737](https://github.com/plotly/plotly.py/pull/2737))
Updated
- The JSON serialization of plotly figures had been accelerated by handling
differently figures with and without NaN and Inf values ([2880](https://github.com/plotly/plotly.py/pull/2880)).
Updated
- Updated Plotly.js to version 1.55.2. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.55.2/CHANGELOG.md) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module.
- `px.imshow` has a new `binary_string` boolean argument, which passes the
image data as a b64 binary string when True. Using binary strings allow for
faster image rendering and smaller figure size. Additional optional arguments
`binary_backend`, `binary_format` and `binary_compression_level` control
how to generate the b64 string ([2691](https://github.com/plotly/plotly.py/pull/2691)
- `px.imshow` has a new `contrast_rescaling` argument in order to choose how
to set data values corresponding to the bounds of the color range
([2691](https://github.com/plotly/plotly.py/pull/2691)
Fixed
- Plotly Express no longer converts datetime columns of input dataframes to UTC ([2749](https://github.com/plotly/plotly.py/pull/2749))
- Plotly Express has more complete support for datetimes as additional `hover_data` ([2749](https://github.com/plotly/plotly.py/pull/2749))
- Histogram selection behaviour with `FigureWidget` ([2711](https://github.com/plotly/plotly.py/pull/2711)) with thanks to [meffmadd](https://github.com/meffmadd)
- Behaviour of `full_html()` with `html=False` ([2469](https://github.com/plotly/plotly.py/pull/2469)) with thanks to [tallamjr](https://github.com/tallamjr)
- `ff.distplot()` now only computes traces that will be shown ([2730](https://github.com/plotly/plotly.py/pull/2730)) with thanks to [akbo](https://github.com/akbo)
- Pandas backend `.hist()` works with latest version of Pandas ([2713](https://github.com/plotly/plotly.py/pull/2713)) with thanks to [Kerybas](https://github.com/Kerybas)
```
### 4.9.0
```
Added
- Added image export support using [Kaleido](https://github.com/plotly/Kaleido). The image export backend can be configured using the new `engine` argument to `plotly.io.to_image` and `plotly.io.write_image`. The `engine` argument may be set to `"kaleido"`, `"orca"`, or `"auto"`. The default is `engine="auto"`, in which case the Kaleido backend is enabled if the `kaleido` package from PyPI is installed, otherwise Orca is used. ([#2613](https://github.com/plotly/plotly.py/pull/2613)).
- `plotly.express.timeline()` added as an official alternative to `plotly.figure_factories.create_gantt()` ([2626](https://github.com/plotly/plotly.py/pull/2626))
- `create_hexbin_mapbox()` added to Figure Factories, with thanks to [RenaudLN](https://github.com/RenaudLN) for the impressive contribution!
- `facet_row_spacing` and `facet_col_spacing` added to Plotly Express cartesian 2d functions ([2614](https://github.com/plotly/plotly.py/pull/2614))
- `base` added to Plotly Express `bar` and `bar_polar` functions ([2626](https://github.com/plotly/plotly.py/pull/2626))
- `px.NO_COLOR` constant to override wide-form color assignment in Plotly Express ([2614](https://github.com/plotly/plotly.py/pull/2614))
Fixed
- trendline traces are now of type `scattergl` when `render_mode="webgl"` in Plotly Express ([2614](https://github.com/plotly/plotly.py/pull/2614))
- regression from 4.8.1 whereby `"parent"` was not accepted as part of `path` for `px.sunburst()` and `px.treemap()` ([2640](https://github.com/plotly/plotly.py/pull/2640))
- `create_dendrogram()` figure factory now works correctly with `scipy` 1.5.1 ([2627](https://github.com/plotly/plotly.py/pull/2627))
Updated
- Updated Plotly.js to version 1.54.6. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.54.6/CHANGELOG.md) for more information.
- Added all cartesian-2d Plotly Express functions, plus `imshow`, to Pandas backend with `kind` option ([2541](https://github.com/plotly/plotly.py/pull/2541))
- `plotly.express.imshow` now uses data frame index and columns names and values to populate axis parameters by default ([2539](https://github.com/plotly/plotly.py/pull/2539))
- Javascript extensions are now build using Node 12, and have an updated `package-lock.json` with many fewer security warnings ([2636](https://github.com/plotly/plotly.py/pull/2636))
```
### 4.8.2
```
Updated
- Updated Plotly.js to version 1.54.5. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.54.5/CHANGELOG.md) for more information.
- `add_traces()` now accepts bare `int`-like values for `rows`/`cols` as well as lists thereof ([2546](https://github.com/plotly/plotly.py/pull/2546)), with thanks to [MCBoarder289](https://github.com/MCBoarder289) for the contribution!
Fixed
- `row`/`col` now accept `int`-like values, not strictly `int` values ([2451](https://github.com/plotly/plotly.py/pull/2451)), with thanks to [MCBoarder289](https://github.com/MCBoarder289) for the contribution!
- Fixed special cases with `px.sunburst` and `px.treemap` with `path` input ([2524](https://github.com/plotly/plotly.py/pull/2524))
- Fixed bug in `hover_data` argument of `px` functions, when the column name is changed with labels and `hover_data` is a dictionary setting up a specific format for the hover data ([2544](https://github.com/plotly/plotly.py/pull/2544)).
- Made the Plotly Express `trendline` argument more robust and made it work with datetime `x` values ([2554](https://github.com/plotly/plotly.py/pull/2554))
- Fixed bug in `px.sunburst` and `px.treemap`: when the `color` and `values` arguments correspond to the same column, a different aggregation function has to be used for the two arguments ([2591](https://github.com/plotly/plotly.py/pull/2591))
- Plotly Express wide mode now accepts mixed integer and float columns ([2598](https://github.com/plotly/plotly.py/pull/2598))
- Plotly Express `range_(x|y)` should not impact the unlinked range of marginal subplots ([2600](https://github.com/plotly/plotly.py/pull/2600))
- `px.line` now sets `line_group=<variable>` in wide mode by default ([2599](https://github.com/plotly/plotly.py/pull/2599))
- Corrected some regex warnings ([2577](https://github.com/plotly/plotly.py/pull/2577)), with thanks to [georgevdd](https://github.com/georgevdd) for the contribution!
```
### 4.8.1
```
Fixed
- Fixed the accidental removal of some functions and submodules from `plotly.colors` and `plotly.express.colors`
```
### 4.8.0
```
Added
- `plotly` now provides a Plotly Express-backed Pandas-compatible plotting backend, which can be activated via `pandas.options.plotting.backend = "plotly"`. Note that it is not intended to implement every Pandas plotting function, nor is it intended to replicate the behaviour of every argument, although per the changes below, `x` and `y` should behave similarly. ([2336](https://github.com/plotly/plotly.py/pull/2336))
- New datasets have been added to `plotly.express.data`: `stocks`, `experiment`, `medals_wide` and `medals_long`. ([2336](https://github.com/plotly/plotly.py/pull/2336))
- plotly `go.Figure` and `go.FigureWidget` now have a `_repr_html_` and a `_repr_mimebundle_` method, which are [standard hooks for integration in systems based on IPython](https://ipython.readthedocs.io/en/stable/config/integrating.html). In particular, with `_repr_html_` plotly figures can now be used within [sphinx-gallery](https://sphinx-gallery.github.io/stable/index.html) without any scraper. These additions should not change anything to the way plotly figures are displayed in notebook environments, since the `_ipython_display_` method (already present in earlier versions) takes precedence over the new methods.
Updated
- The behaviour of the `x`, `y`, `orientation`, `histfunc`, `violinmode`, `boxmode` and `stripmode` arguments for 2d-cartesian functions in Plotly Express (i.e. `scatter`, `line`, `area`, `bar`, `histogram`, `violin`, `box`, `strip`, `funnel`, `density_heatmap` and `density_contour`) has been refined ([2336](https://github.com/plotly/plotly.py/pull/2336)):
- if `x` or `y` is missing, it is inferred to be the index of `data_frame` if `data_frame` provided, otherwise a stable index of integers starting at 0. In the case of `px.bar`, if the provided value is not continuous, the missing value is treated as a column of 1s named "count", so as to behave more like `px.histogram` and to avoid sizing the resulting bars differently based on their position in the column. Previously, missing values defaulted to integers starting at 0 *per trace* which made it potentially inconsistent or misleading.
- if `x` (`y`) is missing, `orientation` now defaults to `v` (`h`). Previously it always defaulted to `v` but this is not considered a breaking change, as the cases in which it now defaults to `h` caused unreadable output if set to `v`.
- if both `x` and `y` are provided and one of them does not contain continuous values, `orientation` defaults to the value perpendicular to that axis. Previously it always defaulted to `v` but this is not considered a breaking change, as the cases in which it now defaults to `h` caused unreadable output if set to `v`.
- if either `x` or `y` (but not both) may now be provided as a list of column references into `data_frame` or columns of data, in which case the imputed data frame will be treated as "wide" data and `melt()`ed internally before applying the usual mapping rules, with function-specific defaults.
- if neither `x` nor `y` is provided but `data_frame` is, the data frame will be treated as "wide" with defaults depending on the value of `orientation` (and `orientation` has accordingly been added to `scatter`, `line`, `density_heatmap`, and `density_contour` for this purpose). Previously this would have resulted in an empty figure.
- if both `x` and `y` are provided to `histogram`, and if `x`, `y` and `z` are provided to `density_heatmap` or `density_contour`, then `histfunc` now defaults to `sum` so as to avoid ignoring the provided data, and to cause `histogram` and `bar` to behave more similarly.
- `violinmode`, `boxmode` and `stripmode` now default to `overlay` if `x` (`y`) in in `v` (`h`) orientation is also mapped to `color`, to avoid strange spacing issues with the previous default of `group` in all cases.
- The Plotly Express arguments `color_discrete_map`, `symbol_map` and `line_dash_map` now accept the string `"identity"` which causes the corresponding input data to be used as-is rather than mapped into `color_discrete_sequence`, `symbol_sequence` or `line_dash_sequence`, respectively. ([2336](https://github.com/plotly/plotly.py/pull/2336))
- Plotly Express now accepts `px.Constant` or `px.Range` objects in the place of column references so as to express constant or increasing integer values. ([2336](https://github.com/plotly/plotly.py/pull/2336))
```
### 4.7.1
```
Fixed
- Fix `AttributeError: module 'plotly.graph_objs' has no attribute 'FigureWidget'` exception on `from plotly.graph_objs import *` when `ipywidgets` is not installed. Error also occurred when importing `plotly.figure_factor`. It is now possible to import `plotly.graph_objs.FigureWidget` when `ipywidgets` is not installed, and an informative `ImportError` exception will be raised in the `FigureWidget` constructor ([2443](https://github.com/plotly/plotly.py/issues/2443), [#1111](https://github.com/plotly/plotly.py/issues/1111)).
- Fix `TypeError: unhashable type: 'Template'` during `Figure` construction when `plotly.io.templates.default` is set to a `Template` object rather than a string.
```
### 4.7.0
```
Updated
- Updated Plotly.js to version 1.54.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.54.1/CHANGELOG.md) for more information. The main new feature of this version of Plotly.js is the possibility to draw layout shapes, using custom dragmodes and corresponding modebar buttons.
- The sphinx-gallery scraper has been updated to work with different structures of galleries [2149](https://github.com/plotly/plotly.py/pull/2419)
Added
- The `hover_data` parameter of `px` functions can now be a dictionary. This makes it possible to skip hover information for some arguments or to change the formatting of hover information [2377](https://github.com/plotly/plotly.py/pull/2377).
- It's now possible to build a development version of Plotly.py against the build artifacts from a non-`master` branch of Plotly.js, which makes for faster QA and development cycles [2349](https://github.com/plotly/plotly.py/pull/2349). Thanks [zouhairm](https://github.com/zouhairm) for this Pull Request!
Fixed
- Plotly Express trendlines now handle missing data correctly [2357](https://github.com/plotly/plotly.py/pull/2357)
Performance
This version includes several performance improvements ([2368](https://github.com/plotly/plotly.py/pull/2368), [#2403](https://github.com/plotly/plotly.py/pull/2403)).
- Child graph objects (e.g. `figure.layout.xaxis`) are no longer created eagerly during graph object construction. Instead, they are created lazily the first time the property is accessed.
- Property validation is now disabled for select internal operations.
- When used with Python 3.7 and above, plotly.py now takes advantage of [PEP-562](https://www.python.org/dev/peps/pep-0562/) to perform submodule imports lazily. This dramatically improves import times.
```
### 4.6.0
```
Updated
- Updated Plotly.js to version 1.53.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.53.0/CHANGELOG.md) for more information on the numerous new features and bug fixes of this release. The main features of the Plotly.js release are
- Introduce range breaks on date axes (for example, to remove week-ends) via `layout.xaxis.rangebreaks`
- Introduce a new unified x (or y) hovermode (`layout.hovermode="x unified"`), in which the hover box shows the information for all traces at a given x (or y) position
- Add `node.customdata` and `link.customdata` to sankey traces
- Updated [contributing notes](https://github.com/plotly/plotly.py/blob/master/contributing.md) for more explanations on how to contribute to plotly.py [#2290](https://github.com/plotly/plotly.py/pull/2290). Please give feedback on these notes!
- Updated documentation examples [2325](https://github.com/plotly/plotly.py/pull/2325), and to show how to color links in Sankey diagrams [#2291](https://github.com/plotly/plotly.py/pull/2291).
- Special thanks to [SylwiaOliwia2](https://github.com/SylwiaOliwia2) and [dangercrow](https://github.com/dangercrow) for improving our documentation!
Added
- `px.imshow` now accepts [`xarray`](http://xarray.pydata.org/) inputs, with metadata being used for axis labels, hover and colorbar [#2166](https://github.com/plotly/plotly.py/pull/2166)
Fixed
- Fixed handling of `opacity` in `px.pie`, `px.funnel_area`, `px.density_mapbox`, `px.funnel` [2317](https://github.com/plotly/plotly.py/pull/2317), with thanks to [tvaucher](https://github.com/tvaucher) for the contribution!
```
### 4.5.4
```
Updated
- The documentation of the API https://plot.ly/python-api-reference/ now
documents the full API [2243](https://github.com/plotly/plotly.py/pull/2243)
- New documentation examples for facets [2235](https://github.com/plotly/plotly.py/pull/2235), legend [#2227](https://github.com/plotly/plotly.py/pull/2227), subplots [#2226](https://github.com/plotly/plotly.py/pull/2226), axes [#2234](https://github.com/plotly/plotly.py/pull/2234) and histograms [#2242](https://github.com/plotly/plotly.py/pull/2242).
Thanks to [SylwiaOliwia2](https://github.com/SylwiaOliwia2) for all these great
examples!
Fixed
- Jupyterlab extension now compatible with both Jupyterlab 1.2 and 2.0 [2261](https://github.com/plotly/plotly.py/pull/2261) with thanks to [consideRatio](https://github.com/consideRatio) for the contribution!
- Fixed a bug when using boolean values for the color argument of px functions [2127](https://github.com/plotly/plotly.py/pull/2127)
- Corrected import bug which was occurring with old versions of ipywidgets [2265](https://github.com/plotly/plotly.py/pull/2265)
- Fixed python 3.8 syntax warning [2262](https://github.com/plotly/plotly.py/pull/2262), with thanks to [sgn](https://github.com/sgn) for the contribution!
```
### 4.5.3
```
Updated
- Removed development dependency on `nose` testing framework [2217](https://github.com/plotly/plotly.py/pull/2217)
Fixed
- JupyterLab extension now compatible with JupyterLab 2.0 [2245](https://github.com/plotly/plotly.py/pull/2245) with thanks to [consideRatio](https://github.com/consideRatio) for the contribution!
```
### 4.5.2
```
Fixed
- Fix build errors in JupyterLab extension by pinning version of `types/plotly.js` [2223](https://github.com/plotly/plotly.py/issues/2223)
```
### 4.5.1
```
Updated
- Updated Plotly.js to version 1.52.2. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/releases/tag/v1.52.2) for more information on bug fixes.
Fixed
- `update_annotations`, `update_shapes` and `update_layout_images` now no longer require the `patch` argument, as per the docstring [2167](https://github.com/plotly/plotly.py/issues/2167)
- `px.defaults` no longer accepts arbitrary keys [2168](https://github.com/plotly/plotly.py/issues/2168)
- better error message when `pandas` is not installed [2125](https://github.com/plotly/plotly.py/issues/2125)
- support columns of numerical type in `path` argument of `px.sunburst`/`px.treemap` and add values of `color` column in hoverlabel for `px.sunburst`/`px.treemap` [2133](https://github.com/plotly/plotly.py/pull/2133)
```
### 4.5.0
```
Updated
- Updated Plotly.js to version 1.52.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.52.0/CHANGELOG.md#1520----2020-01-08) for more information on numerous new attribute and bug fixes.
- Plotly Express uses the new `legend.title` attribute and so now has shorter trace `name`s [2051](https://github.com/plotly/plotly.py/pull/2051)
- The heuristic used by `px.parallel_categories` to determine which columns of the data frame to draw has been changed and made more configurable with the `dimensions_max_cardinality` argument [2102](https://github.com/plotly/plotly.py/pull/2102)
- The `simple_white` colorbar styling has been streamlined [2110](https://github.com/plotly/plotly.py/pull/2110)
- The `jupyterlab-plotly` and `plotlywidget` JupyterLab extensions should now share code when installed together, resulting in smaller JupyterLab vendor bundle sizes [2103](https://github.com/plotly/plotly.py/pull/2103)
Fixed
- Plotly Express `category_orders` are now respected independent of the contents of the data set [2084](https://github.com/plotly/plotly.py/issues/2084)
- `go.Scattergl` symbols now accept numeric specification [1928](https://github.com/plotly/plotly.py/issues/1928)
- `px.scatter` trendline coefficients are now more readable [1984](https://github.com/plotly/plotly.py/issues/1984)
- Built-in cyclical color scales now all have identical start and end points [2016](https://github.com/plotly/plotly.py/pulls/2016)
Added
- `px.sunburst` and `px.treemap` now accept a `path` argument for passing
columns of a rectangular dataframe to build the charts [2006](https://github.com/plotly/plotly.py/pull/2006)
- `px.choropleth` now accepts a user-supplied `geojson` attribute [2057](https://github.com/plotly/plotly.py/pull/2057)
- `px.choropleth` and `px.choropleth_mapbox` now accept `featureidkey` to specify the GeoJSON field to use to match `locations` [2057](https://github.com/plotly/plotly.py/pull/2057)
- `px.choropleth` and `px.choropleth_mapbox` now accept discrete color [2057](https://github.com/plotly/plotly.py/pull/2057)
- `px.bar_polar` now accepts continuous color [2017](https://github.com/plotly/plotly.py/pull/2017)
- New `layout.uniformtext` attribute allows for automatic standardization of font sizes across bar-like and hierarchical traces. See the
[plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.52.0/CHANGELOG.md#1520----2020-01-08)
for more information
```
### 4.4.1
```
Fixed
- Fixed improper JSON encoding exception when the `pillow` module not installed [1993](https://github.com/plotly/plotly.py/pull/1993)
```
### 4.4.0
```
Updated
- Updated Plotly.js to version 1.51.2. See the
[plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#1512----2019-11-25)
for more information
- The tutorials of the [plotly.py documentation](https://plot.ly/python/) are
now in the main [plotly.py Github repository](https://github.com/plotly/plotly.py). Contributions in order to improve or extend the documentation are very welcome!
- `plotly.express` generated plots no longer have a default height of 600 pixels, instead they inherit the default height of regular figures [1990](https://github.com/plotly/plotly.py/pull/1990). To restore the old behavior, set `px.defaults.height=600` once per session, or set the `height` keyword argument to any `px.function()` to 600.
Fixed
- Fixed a plotly.express input bug when using data frame indices[1934](https://github.com/plotly/plotly.py/pull/1934)
- Fixed how to display facet labels with plotly express [1966](https://github.com/plotly/plotly.py/pull/1966)
- Fixed a bug to use correctly the `zmin/zmax` parameter in `px.imshow` for single-channel images [1981](https://github.com/plotly/plotly.py/pull/1981)
- Clipped docstring width for better display in Jupyterlab [1939](https://github.com/plotly/plotly.py/pull/1939). Thank you joelostblom!
- Fixed a bug in the case of external orca server [1915](https://github.com/plotly/plotly.py/pull/1915) thank you dev-dsp!
Added
- Extended the plotly.express functional API with 7 new functions: `px.pie`,
`px.sunburst`, `px.treemap`, `px.funnel`, and `px.funnel_area` ([1909](https://github.com/plotly/plotly.py/pull/1909)) `px.density_mapbox` and
`px.choropleth_mapbox` [1937](https://github.com/plotly/plotly.py/pull/1937).
- plotly.express mapbox functions in plotly.express have new arguments `center` and `mapbox_style` [1937](https://github.com/plotly/plotly.py/pull/1937).
- plotly.express polar plots (`scatter_polar`, `line_polar`, `bar_polar`) now
have a `range_theta` keyword argument for representing only an angular
section [1969](https://github.com/plotly/plotly.py/pull/1969).
- All continuous colorscales now accept a `_r` suffix that reverses their direction [1933](https://github.com/plotly/plotly.py/pull/1933)
- Docstrings of plotly.py are now doctested [1921](https://github.com/plotly/plotly.py/pull/1921).
- Reversing a predefined colorscale by appending `_r` to its name [1933](https://github.com/plotly/plotly.py/pull/1933)
```
### 4.3.0
```
Updated
- Updated Plotly.js to version 1.51.1. See the
[plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#1511----2019-11-04)
for more information
- Improved propagation of empty templates ([1892](https://github.com/plotly/plotly.py/pull/1892))
- Update the `add_annotations`/`add_shapes`/`add_images` methods to no longer default to adding objects in paper coordinates. This allows plotly.js to determine the default reference frame based on context ([1888](https://github.com/plotly/plotly.py/pull/1888))
- Use the default template's background color for displaying color swatches ([1872](https://github.com/plotly/plotly.py/pull/1872)). Special thanks to [joelostblom](https://github.com/joelostblom) for this contribution!
- Improved docstrings ([1835](https://github.com/plotly/plotly.py/pull/1835), [#1837](https://github.com/plotly/plotly.py/pull/1837))
Added
- Added image trace type ([plotly.js4289](https://github.com/plotly/plotly.js/pull/4289), [plotly.js#4307](https://github.com/plotly/plotly.js/pull/4307), [plotly.js#4313](https://github.com/plotly/plotly.js/pull/4313), [plotly.js#4319](https://github.com/plotly/plotly.js/pull/4319))
- Added matplotlib-style `plotly.express.imshow` convenience function to display images and heatmaps ([1855](https://github.com/plotly/plotly.py/pull/1855), [#1885](https://github.com/plotly/plotly.py/pull/1885))
- Added matplotlib-style `simple_white` template ([1864](https://github.com/plotly/plotly.py/pull/1864)). Special thanks to [joelostblom](https://github.com/joelostblom) for this contribution.
- Added support for using an externally managed orca server for image export features ([1850](https://github.com/plotly/plotly.py/pull/1850)). Special thanks to [miriad](https://github.com/miriad) for this contribution.
- Added facet wrapping support to plotly express functions using the new `facet_col_wrap` argument ([1838](https://github.com/plotly/plotly.py/pull/1838))
```
### 4.2.1
```
Fixed
- Fixed regression in 4.2.0 that caused all figure factories to require that scikit-image be installed ([1832](https://github.com/plotly/plotly.py/pull/1832))
```
### 4.2.0
```
Updated
- Updated Plotly.js to version 1.50.1. See the
[plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#1501----2019-10-15)
for more information
Added
- Added `treemap` trace type ([plotly.js4185](https://github.com/plotly/plotly.js/pull/4185), [plotly.js#4219](https://github.com/plotly/plotly.js/pull/4219), [plotly.js#4227](https://github.com/plotly/plotly.js/pull/4227), [plotly.js#4242](https://github.com/plotly/plotly.js/pull/4242))
- Added `add_*`/`select_*`/`for_each_*`/`update_*` convenience figure methods for annotations, shapes, and images ([1817](https://github.com/plotly/plotly.py/pull/1817))
- Added `overwrite` kwarg to `update*` figure methods to fully replace property values, rather than update them recursively ([1726](https://github.com/plotly/plotly.py/pull/1726))
- Added `texttemplate` attribute to all traces that support on-graph text ([plotly.js4071](https://github.com/plotly/plotly.js/pull/4071), [plotly.js#4179](https://github.com/plotly/plotly.js/pull/4179))
- Added date custom formatting in `hovertemplate` and `texttemplate` e.g. `'%{x|%b %-d, %Y}'` ([plotly.js4071](https://github.com/plotly/plotly.js/pull/4071))
- Added transition support to `bar` trace length, width, on-graph text positioning, marker style and error bars ([plotly.js4180](https://github.com/plotly/plotly.js/pull/4180), [plotly.js#4186](https://github.com/plotly/plotly.js/pull/4186))
- Added support for legend scrolling via touch interactions ([plotly.js3873](https://github.com/plotly/plotly.js/pull/3873), [plotly.js#4214](https://github.com/plotly/plotly.js/pull/4214))
Fixed
- Fixed `iframe` renderer on Python 2 ([1822](https://github.com/plotly/plotly.py/pull/1822))
- Fixed use of merged templates in plotly.express ([1819](https://github.com/plotly/plotly.py/pull/1819))
```
### 4.1.1
```
Updated
- Updated Plotly.js to version 1.49.4. See the
[plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#1494----2019-08-22)
for more information
- The width of a figure produced by the `create_gantt` figure factory now resizes responsively ([1724](https://github.com/plotly/plotly.py/pull/1724))
Fixed
- The name of the steps property of `graph_objects.indicator.Gauge` has been renamed from `stepss` to `steps`
- Avoid crash in iframe renderers when running outside iPython ([1723](https://github.com/plotly/plotly.py/pull/1723))
```
Links
- PyPI: https://pypi.org/project/plotly
- Changelog: https://pyup.io/changelogs/plotly/
- Homepage: https://plotly.com/python/
This PR updates plotly from 4.1.0 to 5.13.1.
Changelog
### 5.13.1 ``` Updated - Updated Plotly.js to from version 2.18.0 to version 2.18.2. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2182----2023-02-15) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. - Updated distutils.Version to packaging.Version [3897](https://github.com/plotly/plotly.py/pull/3897)] and [#4055](https://github.com/plotly/plotly.py/pull/4055)] ``` ### 5.13.0 ``` Updated - Updated Plotly.js to from version 2.17.1 to version 2.18.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2180----2023-01-19) for more information. Notable changes include: - Add `sync` tickmode option [[6356](https://github.com/plotly/plotly.js/pull/6356), [#6443](https://github.com/plotly/plotly.js/pull/6443)], with thanks to filipesantiagoAM and VictorBezak for the contribution! - Build process now uses Node 18.x and version 2 lockfile (should be an invisible change for users) [[4034](https://github.com/plotly/plotly.py/pull/4034)] Fixed - `write_html()` now explicitly encodes output as UTF-8 because Plotly.js' bundle contains such characters [[4021](https://github.com/plotly/plotly.py/pull/4021)] and [[#4022](https://github.com/plotly/plotly.py/pull/4022)] - fixed `iframe` renderer regression from 5.12 and also fixed error when this renderer was used in the very first cell in a notebook [[4036](https://github.com/plotly/plotly.py/pull/4036)] ``` ### 5.12.0 ``` Updated - Support for ipywidgets 8 [[3930](https://github.com/plotly/plotly.py/pull/3930)] - Updated Plotly.js to from version 2.16.1 to version 2.17.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2170----2022-12-22) for more information. Notable changes include: - Add `shift` and `autoshift` to cartesian y axes to help avoid overlapping of multiple axes [[6334](https://github.com/plotly/plotly.js/pull/6334)], with thanks to [Gamma Technologies](https://www.gtisoft.com) for sponsoring the related development! - Introduce group attributes for `scatter` trace i.e. `alignmentgroup`, `offsetgroup`, `scattermode` and `scattergap` [[6381](https://github.com/plotly/plotly.js/pull/6381)], this feature was anonymously sponsored: thank you to our sponsor! - Add `marker.cornerradius` attribute to `treemap` trace [[6351](https://github.com/plotly/plotly.js/pull/6351)] Fixed - Fixed the usage of some deprecated NumPy types which were removed in NumPy 1.24 [[3997](https://github.com/plotly/plotly.py/pull/3997)] - Fixed bug for trendlines with datetime axes [[3683](https://github.com/plotly/plotly.py/issues/3683)] - `marker.angle` attribute now accepts iterables where appropriate [[4013](https://github.com/plotly/plotly.py/issues/4013)] - `selector=0` now correctly returns the first trace in `.select_traces()` and related methods [[3817](https://github.com/plotly/plotly.py/issues/3817)] ``` ### 5.11.0 ``` Updated - Updated Plotly.js to from version 2.14.0 to version 2.16.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2161----2022-10-21) for more information. Notable changes include: - Add clustering options to `scattermapbox` [[5827](https://github.com/plotly/plotly.js/pull/5827)], with thanks to elben10 for the contribution! - Add bounds to mapbox suplots [[6339](https://github.com/plotly/plotly.js/pull/6339)] - Add `angle`, `angleref` and `standoff` to `marker` and add `backoff` to `line`; also introduce new arrow symbols to facilitate drawing networks [[6297](https://github.com/plotly/plotly.js/pull/6297)] - Add `minreducedwidth` and `minreducedheight` to layout for increasing control over automargin [[6307](https://github.com/plotly/plotly.js/pull/6307)] - Add `entrywidth` and `entrywidthmode` to legend [[6202](https://github.com/plotly/plotly.js/pull/6202), [#6324](https://github.com/plotly/plotly.js/pull/6324)] ``` ### 5.10.0 ``` Updated - Updated Plotly.js to from version 2.12.1 to version 2.14.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2140----2022-08-10) for more information. Notable changes include: - Add support for `sankey` links with arrows - Add `selections`, `newselection` and `activeselection` layout attributes to have persistent and editable selections over cartesian subplots - Add `unselected.line.color` and `unselected.line.opacity` options to `parcoords` trace - Display Plotly's new logo in the modebar ``` ### 5.9.0 ``` Added - `pattern_shape` options now available in `px.timeline()` [3774](https://github.com/plotly/plotly.py/pull/3774) - `facet_*` and `category_orders` now available in `px.pie()` [3775](https://github.com/plotly/plotly.py/pull/3775) Performance - `px` methods no longer call `groupby` on the input dataframe when the result would be a single group, and no longer groups by a lambda, for significant speedups [3765](https://github.com/plotly/plotly.py/pull/3765) with thanks to [jvdd](https://github.com/jvdd) Updated - Allow non-string extras in `flaglist` attributes, to support upcoming changes to `ax.automargin` in plotly.js [plotly.js6193](https://github.com/plotly/plotly.js/pull/6193), [#3749](https://github.com/plotly/plotly.py/pull/3749) ``` ### 5.8.2 ``` Fixed - Fixed a syntax error that caused rendering issues in Databricks notebooks and likely elsewhere. [3763](https://github.com/plotly/plotly.py/pull/3763) with thanks to [fwetdb](https://github.com/fwetdb) ``` ### 5.8.1 ``` (no changes, due to a mixup with the build process!) ``` ### 5.8.0 ``` Fixed - Improve support for type checking and IDE auto-completion by bypassing lazy-loading when type checking. [3425](https://github.com/plotly/plotly.py/pull/3425) with thanks to [JP-Ellis](https://github.com/JP-Ellis) - line dash-style validators are now correctly used everywhere so that values like `10px 2px` are accepted [3722](https://github.com/plotly/plotly.py/pull/3722) - Resolved various deprecation warning messages and compatibility issues with upstream dependencies and Python 3.11, plus removed dependency on `six`, with thanks to [maresb](https://github.com/maresb), [hugovk](https://github.com/hugovk), [tirkarthi](https://github.com/tirkarthi), [martinRenou](https://github.com/martinRenou), and [BjoernLudwigPTB](https://github.com/BjoernLudwigPTB) - Better support for MathJax 3 [3706](https://github.com/plotly/plotly.py/pull/3706) Added - Type annotations for Plotly Express functions and chainable `go.Figure` methods, for better IDE auto-completion [3708](https://github.com/plotly/plotly.py/pull/3708) Updated - Updated Plotly.js to from version 2.11.1 to version 2.12.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v2.12.1/CHANGELOG.md#2121----2022-05-09) for more information. Notable changes include: - Add `minor` ticks to cartesian axes - Add `griddash` option to most axes ``` ### 5.7.0 ``` Added - added `pattern_shape` options to `px.area()` [3668](https://github.com/plotly/plotly.py/issues/3668) Updated - Updated Plotly.js to from version 2.9.0 to version 2.11.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2111----2022-03-15) for more information. Notable changes include: - Add `fillpattern` options to `scatter` trace - Various JS-specific improvements such as MathJax 3.0 support ``` ### 5.6.0 ``` Updated - Updated Plotly.js to from version 2.8.3 to version 2.9.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#290----2022-02-04) for more information. Notable changes include: - Implement `ticklabelstep` to reduce labels on cartesian axes and colorbars - Display the version of plotly.js when hovering over the modebar ``` ### 5.5.0 ``` Added - `text_auto` argument to `px.bar`, `px.histogram`, `px.density_heatmap`, `px.imshow` [3518](https://github.com/plotly/plotly.py/issues/3518) - Deprecated `ff.create_annotated_heatmap`, `ff.create_county_choropleth`, `ff.create_gantt` [3518](https://github.com/plotly/plotly.py/issues/3518) - `div_id` argument to `pio.to_html`, `pio.write_html`, `fig.to_html` and `fig.write_html` to optionally make its IDs deterministic [3487](https://github.com/plotly/plotly.py/issues/3487) with thanks to [Skn0tt](https://github.com/Skn0tt) Fixed - Fixed ValueError when `ff.create_annotated_heatmap` passes `rgba()` colors into `to_rgb_color_list` [3478](https://github.com/plotly/plotly.py/issues/3478) with thanks to [janosh](https://github.com/janosh) Updated - Updated Plotly.js to from version 2.6.3 to version 2.8.3. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#280----2021-12-10) for more information. Notable changes include: - Horizontal color bars - `texttemplate` for histogram-like and heatmap-like traces ``` ### 5.4.0 ``` Fixed - Fixed error when serializing dict with mix of string and non-string keys [3380](https://github.com/plotly/plotly.py/issues/3380) Updated - The JSON serialization engines no longer sort their keys [3380](https://github.com/plotly/plotly.py/issues/3380) - Updated Plotly.js to from version 2.4.2 to version 2.6.3. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#263----2021-11-12) for more information. Notable changes include: - New subplot type `smith` that supports `scattersmith` trace types for visualizing data in the complex domain - Changes to Plotly.js packaging ``` ### 5.3.1 ``` Updated - Updated Plotly.js to from version 2.4.1 to version 2.4.2. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#240----2021-08-27) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include: - Bug fix for rendering unified hover labels in classic Jupyter Notebooks ``` ### 5.3.0 ``` Updated - Updated Plotly.js to from version 2.3.1 to version 2.4.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#240----2021-08-27) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include: - Added `legend.groupclick` options - Provide bbox of hover items in event data ``` ### 5.2.2 ``` Fixed - Fixed error when using the orjson engine with non-string keys [3351](https://github.com/plotly/plotly.py/pull/3351) ``` ### 5.2.1 ``` Updated - Updated Plotly.js to from version 2.2.0 to version 2.3.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#231----2021-07-30) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include: - new projections in `geo` subplots from a more recent version of `d3-geo` - new number-formatting directives from a more recent version of `d3-format` - Improve rendering of `scattergl`, `splom` and `parcoords` by implementing `plotGlPixelRatio` for those traces - performance improvements and bug fixes Added - Extra flags were added to the `gapminder` and `stocks` dataset to facilitate testing, documentation and demos [3305](https://github.com/plotly/plotly.py/issues/3305) - All line-like Plotly Express functions now accept `markers` argument to display markers, and all but `line_mapbox` accept `symbol` to map a field to the symbol attribute, similar to scatter-like functions [3326](https://github.com/plotly/plotly.py/issues/3326) - `px.scatter` and `px.density_contours` now support new `trendline` types `'rolling'`, `'expanding'` and `'ewm'` [2997](https://github.com/plotly/plotly.py/pull/2997) - `px.scatter` and `px.density_contours` now support new `trendline_options` argument to parameterize trendlines, with support for constant control and log-scaling in `'ols'` and specification of the fraction used for `'lowess'`, as well as pass-through to Pandas for `'rolling'`, `'expanding'` and `'ewm'` [2997](https://github.com/plotly/plotly.py/pull/2997) - `px.scatter` and `px.density_contours` now support new `trendline_scope` argument that accepts the value `'overall'` to request a single trendline for all traces, including across facets and animation frames [2997](https://github.com/plotly/plotly.py/pull/2997) - A new `px.ecdf()` function for Empirical Cumulative Distribution Functions [3330](https://github.com/plotly/plotly.py/pull/3330) Fixed - Fixed regression introduced in version 5.0.0 where pandas/numpy arrays with `dtype` of Object were being converted to `list` values when added to a Figure ([3292](https://github.com/plotly/plotly.py/issues/3292), [#3293](https://github.com/plotly/plotly.py/pull/3293)) - Better detection of Chrome and Chromium browsers in the Renderers framework, especially on Linux ([3278](https://github.com/plotly/plotly.py/pull/3278)) with thanks to [c-chaitanya](https://github.com/c-chaitanya) for the contribution ``` ### 5.1.0 ``` - Updated Plotly.js to from version 2.1.0 to version 2.2.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#220----2021-06-28) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include: - new `<trace>.legendgrouptitle` attribute for legend group titles - new `%h` text formatting directive for half-years - performance improvements and bug fixes ``` ### 5.0.0 ``` Updated/Changed Items in this section may be considered backwards-incompatible changes for the purposes of [Semantic Versioning](http://semver.org/) but we expect the vast majority of users to be able to upgrade to version 5.0 without encountering any issues. - **Dropped support for Python older than 3.6** [3160](https://github.com/plotly/plotly.py/pull/3160) - Updated Plotly.js to from version 1.58.4 to version 2.1.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#210----2021-06-18) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include: - dropped support for IE9 and IE10 - dropped support for long-deprecated `graph_objects` like `area` traces and `scatter.(t|r)` and `layout.(radial|angular)axis` attributes - modebar no longer has hovermode or spikeline buttons by default (can be added back with `fig.update_layout(modebar_add=["v1hovermode", "toggleSpikeLines"])`) - "Aa" text no longer appears on legend items unless `mode="text"` - In `bar` traces, `textposition` now defaults to `"auto"` - Font size for legend and colorbar titles now matches axis title font size (slightly bigger) - deprecated `heatmapgl`, `pointcloud` traces as well as all `transform` attributes - Combined `plotlywidget` into `jupyterlab-plotly` and packaged them as a federated extension [3142](https://github.com/plotly/plotly.py/pull/3142) with massive thanks to [fcollonval](https://github.com/fcollonval) for the contribution - In addition to this change, large Plotly.js bundles are now lazily loaded on-demand by JupyterLab - Plotly.js CDN url will now be versioned by default for HTML exports using `include_plotlyjs='cdn'` and for "connected" renderers. [2961](https://github.com/plotly/plotly.py/pull/2961) with thanks to [adehad](https://github.com/adehad) for the contribution - Recommending Kaleido by default over Orca [3094](https://github.com/plotly/plotly.py/pull/3094) - Replaced `retrying` dependency with `tenacity` [2911](https://github.com/plotly/plotly.py/pull/2911) with thanks to [jmsmdy](https://github.com/jmsmdy) for the contribution - Plotly Express now always takes into account every value in `category_orders` when computing discrete mappings (color, symbol, line-dash, pattern-shapes) as well as facets, even those values which are absent in the data [3247](https://github.com/plotly/plotly.py/pull/3247) Added - Additions due to bumping Plotly.js from 1.58.4 to 2.1.0 (see [changelog]((https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#210----2021-06-18))): - New `icicle` trace type, with thanks to [Kully](https://github.com/Kully) and [mtwichan](https://github.com/mtwichan) of [Zyphr](https://www.zyphr.ca/) for their contribution! - New `marker.pattern` options for `bar`-like trace types with thanks to [s417-lama](https://github.com/s417-lama) for the contribution! - New `legendrank` attribute to control rank of traces within legends - Plotly Express' `px.bar()`, `px.histogram()` and `px.bar_polar()` now support the `pattern_shape` argument [3252](https://github.com/plotly/plotly.py/pull/3252) - New Plotly Express `px.icicle()` function, with thanks to [Kully](https://github.com/Kully) and [mtwichan](https://github.com/mtwichan) of [Zyphr](https://www.zyphr.ca/) for their contribution! [#3256](https://github.com/plotly/plotly.py/pull/3256) - New functions in `plotly.colors`: `get_colorscale()` and `sample_colorscale()` [3136](https://github.com/plotly/plotly.py/pull/3136) and [#3186](https://github.com/plotly/plotly.py/pull/3186) with thanks to [CarlAndersson](https://github.com/CarlAndersson) for the contributions - Faster JSON encoding when `orjson` is present [2955](https://github.com/plotly/plotly.py/pull/2955) Fixed - Pandas and Numpy datetime serialization fixes [3022](https://github.com/plotly/plotly.py/pull/3022) - Fixed selected points of histograms in FigureWidget [2771](https://github.com/plotly/plotly.py/pull/2771) with thanks to [meffmadd](https://github.com/meffmadd) for the contribution - Static image export now honors `layout.(width|height)`[3240](https://github.com/plotly/plotly.py/pull/3240) - Improvements to "matplotlylib" conversion utility in `plotly.tools.mpl_to_plotly()` with thanks to [fdion](https://github.com/fdion) [#3143](https://github.com/plotly/plotly.py/pull/3143) ``` ### 4.14.3 ``` - `px.timeline()` now allows `hover_data` formatting of start and end times [3018](https://github.com/plotly/plotly.py/pull/3018) - Small change to packaging of `plotlywidget` extension for JupyterLab 3 [3021](https://github.com/plotly/plotly.py/pull/3021) ``` ### 4.14.2 ``` Updated - JupyterLab extensions now compatible with JupyterLab 3.x [3016](https://github.com/plotly/plotly.py/pull/3016) - Updated Plotly.js to version 1.58.4. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.58.4/CHANGELOG.md) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include: - fixes for rendering 3d plots on recent Safari versions - fixes to inside ticklabels - regression fixes Fixed - `px.histogram()` Y-axis labels now take into account `histnorm` and `barnorm` [2989](https://github.com/plotly/plotly.py/pull/2989) - `px.histogram()` `marginal` and `facet_*` now work correctly together [3014](https://github.com/plotly/plotly.py/pull/3014) ``` ### 4.14.1 ``` Updated - Updated Plotly.js to version 1.58.2. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.58.0/CHANGELOG.md) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include: - fixes for new `ticklabelposition` attribute - fixes for a regression related to treemaps in the previous version ``` ### 4.14.0 ``` Added - `px.imshow` now supports `facet_col` and `animation_frame` arguments for visualizing 3-d and 4-d images [2746](https://github.com/plotly/plotly.py/pull/2746) - `px.defaults` now supports `color_discrete_map`, `symbol_map`, `line_dash_map`, `labels` and `category_orders` as well as a `.reset()` method [2957](https://github.com/plotly/plotly.py/pull/2957) Fixed - axes will now auto-type numeric strings as categorical data rather than linear in the default templates [2951](https://github.com/plotly/plotly.py/pull/2951) Updated - Updated Plotly.js to version 1.58.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.58.0/CHANGELOG.md) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include: - a new `ticklabelposition` attribute to enable positioning tick labels inside the plotting area - better support for `scaleanchor` and `matches` on cartesian axes for matched square subplots - a new `autotypenumbers` attribute which is now set to `strict` in the default templates - various fixes relating to `automargins` for small figures ``` ### 4.13.0 ``` Added - `px.choropleth`, `px.scatter_geo` and `px.line_geo` now support faceting as well as `fitbounds` and `basemap_visible` [2923](https://github.com/plotly/plotly.py/pull/2923) - `px.scatter_geo` and `px.line_geo` now support `geojson`/`featureidkey` input [2923](https://github.com/plotly/plotly.py/pull/2923) - `px.scatter_geo` now supports `symbol` [2923](https://github.com/plotly/plotly.py/pull/2923) - `go.Figure` now has a `set_subplots` method to set subplots on an already existing figure. [2866](https://github.com/plotly/plotly.py/pull/2866) - Added `Turbo` colorscale and fancier swatch display functions [2882](https://github.com/plotly/plotly.py/pull/2882) - A utility function `image_array_to_data_uri` has been added in `plotly.utils`, in order to transform NumPy arrays to data b64 URIs (which can be passed to the source parameter of `go.Image`, or to layout images). [2879](https://github.com/plotly/plotly.py/pull/2879) - the `selector` argument to updater/selector functions now accepts `int`s and `str`s [2894](https://github.com/plotly/plotly.py/pull/2894) Updated - the JSON serialization of plotly figures has been accelerated thanks to a different handling of Infinity and NaN values. For example, a figure with a 1000x1000 Heatmap should now serialize 2x faster. [2880](https://github.com/plotly/plotly.py/pull/2880) - Coding mistakes with "magic underscores" now return significantly more ergonomic error messages [2843](https://github.com/plotly/plotly.py/pull/2843) - Error messages related to impossible subplot geometries are now much more helpful [2897](https://github.com/plotly/plotly.py/pull/2897) Fixed - `px.scatter_geo` support for `text` is fixed [2923](https://github.com/plotly/plotly.py/pull/2923) - the `x` and `y` parameters of `px.imshow` are now used also in the case where an Image trace is used (for RGB data or with `binary_string=True`). However, only numerical values are accepted (while the Heatmap trace allows date or string values for `x` and `y`). [2761](https://github.com/plotly/plotly.py/pull/2761) ``` ### 4.12.0 ``` Added - For `add_trace`, `add_shape`, `add_annotation` and `add_layout_image`, the `row` and/or `col` argument now also accept the string `"all"`. `row="all"` adds the object to all the subplot rows and `col="all"` adds the object to all the subplot columns. ([2840](https://github.com/plotly/plotly.py/pull/2840)) - Shapes that reference the plot axes in one dimension and the data in another dimension can be added with the new `add_hline`, `add_vline`, `add_hrect`, `add_vrect` functions, which also support the `row="all"` and `col="all"` arguments. ([2840](https://github.com/plotly/plotly.py/pull/2840)) - The `add_trace`, `add_shape`, `add_annotation`, `add_layout_image`, `add_hline`, `add_vline`, `add_hrect`, `add_vrect` functions accept an argument `exclude_empty_subplots` which if `True`, only adds the object to subplots already containing traces or layout objects. This is useful in conjunction with the `row="all"` and `col="all"` arguments. ([2840](https://github.com/plotly/plotly.py/pull/2840)) - For all `go.Figure` functions accepting a selector argument (e.g., `select_traces`), this argument can now also be a function which is passed each relevant graph object (in the case of `select_traces`, it is passed every trace in the figure). For graph objects where this function returns true, the graph object is included in the selection. ([2844](https://github.com/plotly/plotly.py/pull/2844)) Added - Better magic underscore error messages. For example, `some_fig.update_layout(geo_ltaxis_showgrid=True)` shows `Bad property path:\ngeo_ltaxis_showgrid\n ^` and lists the valid properties for `geo`. Updated - Updated Plotly.js to version 1.57.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.57.1/CHANGELOG.md) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. ``` ### 4.11.0 ``` Updated - Updated Plotly.js to version 1.56.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.56.0/CHANGELOG.md) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. ``` ### 4.10.0 ``` Added - Added `plotly.io.full_figure_for_development()` and `plotly.graph_objects.Figure.full_figure_for_development()` ([2737](https://github.com/plotly/plotly.py/pull/2737)) Updated - The JSON serialization of plotly figures had been accelerated by handling differently figures with and without NaN and Inf values ([2880](https://github.com/plotly/plotly.py/pull/2880)). Updated - Updated Plotly.js to version 1.55.2. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.55.2/CHANGELOG.md) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. - `px.imshow` has a new `binary_string` boolean argument, which passes the image data as a b64 binary string when True. Using binary strings allow for faster image rendering and smaller figure size. Additional optional arguments `binary_backend`, `binary_format` and `binary_compression_level` control how to generate the b64 string ([2691](https://github.com/plotly/plotly.py/pull/2691) - `px.imshow` has a new `contrast_rescaling` argument in order to choose how to set data values corresponding to the bounds of the color range ([2691](https://github.com/plotly/plotly.py/pull/2691) Fixed - Plotly Express no longer converts datetime columns of input dataframes to UTC ([2749](https://github.com/plotly/plotly.py/pull/2749)) - Plotly Express has more complete support for datetimes as additional `hover_data` ([2749](https://github.com/plotly/plotly.py/pull/2749)) - Histogram selection behaviour with `FigureWidget` ([2711](https://github.com/plotly/plotly.py/pull/2711)) with thanks to [meffmadd](https://github.com/meffmadd) - Behaviour of `full_html()` with `html=False` ([2469](https://github.com/plotly/plotly.py/pull/2469)) with thanks to [tallamjr](https://github.com/tallamjr) - `ff.distplot()` now only computes traces that will be shown ([2730](https://github.com/plotly/plotly.py/pull/2730)) with thanks to [akbo](https://github.com/akbo) - Pandas backend `.hist()` works with latest version of Pandas ([2713](https://github.com/plotly/plotly.py/pull/2713)) with thanks to [Kerybas](https://github.com/Kerybas) ``` ### 4.9.0 ``` Added - Added image export support using [Kaleido](https://github.com/plotly/Kaleido). The image export backend can be configured using the new `engine` argument to `plotly.io.to_image` and `plotly.io.write_image`. The `engine` argument may be set to `"kaleido"`, `"orca"`, or `"auto"`. The default is `engine="auto"`, in which case the Kaleido backend is enabled if the `kaleido` package from PyPI is installed, otherwise Orca is used. ([#2613](https://github.com/plotly/plotly.py/pull/2613)). - `plotly.express.timeline()` added as an official alternative to `plotly.figure_factories.create_gantt()` ([2626](https://github.com/plotly/plotly.py/pull/2626)) - `create_hexbin_mapbox()` added to Figure Factories, with thanks to [RenaudLN](https://github.com/RenaudLN) for the impressive contribution! - `facet_row_spacing` and `facet_col_spacing` added to Plotly Express cartesian 2d functions ([2614](https://github.com/plotly/plotly.py/pull/2614)) - `base` added to Plotly Express `bar` and `bar_polar` functions ([2626](https://github.com/plotly/plotly.py/pull/2626)) - `px.NO_COLOR` constant to override wide-form color assignment in Plotly Express ([2614](https://github.com/plotly/plotly.py/pull/2614)) Fixed - trendline traces are now of type `scattergl` when `render_mode="webgl"` in Plotly Express ([2614](https://github.com/plotly/plotly.py/pull/2614)) - regression from 4.8.1 whereby `"parent"` was not accepted as part of `path` for `px.sunburst()` and `px.treemap()` ([2640](https://github.com/plotly/plotly.py/pull/2640)) - `create_dendrogram()` figure factory now works correctly with `scipy` 1.5.1 ([2627](https://github.com/plotly/plotly.py/pull/2627)) Updated - Updated Plotly.js to version 1.54.6. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.54.6/CHANGELOG.md) for more information. - Added all cartesian-2d Plotly Express functions, plus `imshow`, to Pandas backend with `kind` option ([2541](https://github.com/plotly/plotly.py/pull/2541)) - `plotly.express.imshow` now uses data frame index and columns names and values to populate axis parameters by default ([2539](https://github.com/plotly/plotly.py/pull/2539)) - Javascript extensions are now build using Node 12, and have an updated `package-lock.json` with many fewer security warnings ([2636](https://github.com/plotly/plotly.py/pull/2636)) ``` ### 4.8.2 ``` Updated - Updated Plotly.js to version 1.54.5. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.54.5/CHANGELOG.md) for more information. - `add_traces()` now accepts bare `int`-like values for `rows`/`cols` as well as lists thereof ([2546](https://github.com/plotly/plotly.py/pull/2546)), with thanks to [MCBoarder289](https://github.com/MCBoarder289) for the contribution! Fixed - `row`/`col` now accept `int`-like values, not strictly `int` values ([2451](https://github.com/plotly/plotly.py/pull/2451)), with thanks to [MCBoarder289](https://github.com/MCBoarder289) for the contribution! - Fixed special cases with `px.sunburst` and `px.treemap` with `path` input ([2524](https://github.com/plotly/plotly.py/pull/2524)) - Fixed bug in `hover_data` argument of `px` functions, when the column name is changed with labels and `hover_data` is a dictionary setting up a specific format for the hover data ([2544](https://github.com/plotly/plotly.py/pull/2544)). - Made the Plotly Express `trendline` argument more robust and made it work with datetime `x` values ([2554](https://github.com/plotly/plotly.py/pull/2554)) - Fixed bug in `px.sunburst` and `px.treemap`: when the `color` and `values` arguments correspond to the same column, a different aggregation function has to be used for the two arguments ([2591](https://github.com/plotly/plotly.py/pull/2591)) - Plotly Express wide mode now accepts mixed integer and float columns ([2598](https://github.com/plotly/plotly.py/pull/2598)) - Plotly Express `range_(x|y)` should not impact the unlinked range of marginal subplots ([2600](https://github.com/plotly/plotly.py/pull/2600)) - `px.line` now sets `line_group=<variable>` in wide mode by default ([2599](https://github.com/plotly/plotly.py/pull/2599)) - Corrected some regex warnings ([2577](https://github.com/plotly/plotly.py/pull/2577)), with thanks to [georgevdd](https://github.com/georgevdd) for the contribution! ``` ### 4.8.1 ``` Fixed - Fixed the accidental removal of some functions and submodules from `plotly.colors` and `plotly.express.colors` ``` ### 4.8.0 ``` Added - `plotly` now provides a Plotly Express-backed Pandas-compatible plotting backend, which can be activated via `pandas.options.plotting.backend = "plotly"`. Note that it is not intended to implement every Pandas plotting function, nor is it intended to replicate the behaviour of every argument, although per the changes below, `x` and `y` should behave similarly. ([2336](https://github.com/plotly/plotly.py/pull/2336)) - New datasets have been added to `plotly.express.data`: `stocks`, `experiment`, `medals_wide` and `medals_long`. ([2336](https://github.com/plotly/plotly.py/pull/2336)) - plotly `go.Figure` and `go.FigureWidget` now have a `_repr_html_` and a `_repr_mimebundle_` method, which are [standard hooks for integration in systems based on IPython](https://ipython.readthedocs.io/en/stable/config/integrating.html). In particular, with `_repr_html_` plotly figures can now be used within [sphinx-gallery](https://sphinx-gallery.github.io/stable/index.html) without any scraper. These additions should not change anything to the way plotly figures are displayed in notebook environments, since the `_ipython_display_` method (already present in earlier versions) takes precedence over the new methods. Updated - The behaviour of the `x`, `y`, `orientation`, `histfunc`, `violinmode`, `boxmode` and `stripmode` arguments for 2d-cartesian functions in Plotly Express (i.e. `scatter`, `line`, `area`, `bar`, `histogram`, `violin`, `box`, `strip`, `funnel`, `density_heatmap` and `density_contour`) has been refined ([2336](https://github.com/plotly/plotly.py/pull/2336)): - if `x` or `y` is missing, it is inferred to be the index of `data_frame` if `data_frame` provided, otherwise a stable index of integers starting at 0. In the case of `px.bar`, if the provided value is not continuous, the missing value is treated as a column of 1s named "count", so as to behave more like `px.histogram` and to avoid sizing the resulting bars differently based on their position in the column. Previously, missing values defaulted to integers starting at 0 *per trace* which made it potentially inconsistent or misleading. - if `x` (`y`) is missing, `orientation` now defaults to `v` (`h`). Previously it always defaulted to `v` but this is not considered a breaking change, as the cases in which it now defaults to `h` caused unreadable output if set to `v`. - if both `x` and `y` are provided and one of them does not contain continuous values, `orientation` defaults to the value perpendicular to that axis. Previously it always defaulted to `v` but this is not considered a breaking change, as the cases in which it now defaults to `h` caused unreadable output if set to `v`. - if either `x` or `y` (but not both) may now be provided as a list of column references into `data_frame` or columns of data, in which case the imputed data frame will be treated as "wide" data and `melt()`ed internally before applying the usual mapping rules, with function-specific defaults. - if neither `x` nor `y` is provided but `data_frame` is, the data frame will be treated as "wide" with defaults depending on the value of `orientation` (and `orientation` has accordingly been added to `scatter`, `line`, `density_heatmap`, and `density_contour` for this purpose). Previously this would have resulted in an empty figure. - if both `x` and `y` are provided to `histogram`, and if `x`, `y` and `z` are provided to `density_heatmap` or `density_contour`, then `histfunc` now defaults to `sum` so as to avoid ignoring the provided data, and to cause `histogram` and `bar` to behave more similarly. - `violinmode`, `boxmode` and `stripmode` now default to `overlay` if `x` (`y`) in in `v` (`h`) orientation is also mapped to `color`, to avoid strange spacing issues with the previous default of `group` in all cases. - The Plotly Express arguments `color_discrete_map`, `symbol_map` and `line_dash_map` now accept the string `"identity"` which causes the corresponding input data to be used as-is rather than mapped into `color_discrete_sequence`, `symbol_sequence` or `line_dash_sequence`, respectively. ([2336](https://github.com/plotly/plotly.py/pull/2336)) - Plotly Express now accepts `px.Constant` or `px.Range` objects in the place of column references so as to express constant or increasing integer values. ([2336](https://github.com/plotly/plotly.py/pull/2336)) ``` ### 4.7.1 ``` Fixed - Fix `AttributeError: module 'plotly.graph_objs' has no attribute 'FigureWidget'` exception on `from plotly.graph_objs import *` when `ipywidgets` is not installed. Error also occurred when importing `plotly.figure_factor`. It is now possible to import `plotly.graph_objs.FigureWidget` when `ipywidgets` is not installed, and an informative `ImportError` exception will be raised in the `FigureWidget` constructor ([2443](https://github.com/plotly/plotly.py/issues/2443), [#1111](https://github.com/plotly/plotly.py/issues/1111)). - Fix `TypeError: unhashable type: 'Template'` during `Figure` construction when `plotly.io.templates.default` is set to a `Template` object rather than a string. ``` ### 4.7.0 ``` Updated - Updated Plotly.js to version 1.54.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.54.1/CHANGELOG.md) for more information. The main new feature of this version of Plotly.js is the possibility to draw layout shapes, using custom dragmodes and corresponding modebar buttons. - The sphinx-gallery scraper has been updated to work with different structures of galleries [2149](https://github.com/plotly/plotly.py/pull/2419) Added - The `hover_data` parameter of `px` functions can now be a dictionary. This makes it possible to skip hover information for some arguments or to change the formatting of hover information [2377](https://github.com/plotly/plotly.py/pull/2377). - It's now possible to build a development version of Plotly.py against the build artifacts from a non-`master` branch of Plotly.js, which makes for faster QA and development cycles [2349](https://github.com/plotly/plotly.py/pull/2349). Thanks [zouhairm](https://github.com/zouhairm) for this Pull Request! Fixed - Plotly Express trendlines now handle missing data correctly [2357](https://github.com/plotly/plotly.py/pull/2357) Performance This version includes several performance improvements ([2368](https://github.com/plotly/plotly.py/pull/2368), [#2403](https://github.com/plotly/plotly.py/pull/2403)). - Child graph objects (e.g. `figure.layout.xaxis`) are no longer created eagerly during graph object construction. Instead, they are created lazily the first time the property is accessed. - Property validation is now disabled for select internal operations. - When used with Python 3.7 and above, plotly.py now takes advantage of [PEP-562](https://www.python.org/dev/peps/pep-0562/) to perform submodule imports lazily. This dramatically improves import times. ``` ### 4.6.0 ``` Updated - Updated Plotly.js to version 1.53.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.53.0/CHANGELOG.md) for more information on the numerous new features and bug fixes of this release. The main features of the Plotly.js release are - Introduce range breaks on date axes (for example, to remove week-ends) via `layout.xaxis.rangebreaks` - Introduce a new unified x (or y) hovermode (`layout.hovermode="x unified"`), in which the hover box shows the information for all traces at a given x (or y) position - Add `node.customdata` and `link.customdata` to sankey traces - Updated [contributing notes](https://github.com/plotly/plotly.py/blob/master/contributing.md) for more explanations on how to contribute to plotly.py [#2290](https://github.com/plotly/plotly.py/pull/2290). Please give feedback on these notes! - Updated documentation examples [2325](https://github.com/plotly/plotly.py/pull/2325), and to show how to color links in Sankey diagrams [#2291](https://github.com/plotly/plotly.py/pull/2291). - Special thanks to [SylwiaOliwia2](https://github.com/SylwiaOliwia2) and [dangercrow](https://github.com/dangercrow) for improving our documentation! Added - `px.imshow` now accepts [`xarray`](http://xarray.pydata.org/) inputs, with metadata being used for axis labels, hover and colorbar [#2166](https://github.com/plotly/plotly.py/pull/2166) Fixed - Fixed handling of `opacity` in `px.pie`, `px.funnel_area`, `px.density_mapbox`, `px.funnel` [2317](https://github.com/plotly/plotly.py/pull/2317), with thanks to [tvaucher](https://github.com/tvaucher) for the contribution! ``` ### 4.5.4 ``` Updated - The documentation of the API https://plot.ly/python-api-reference/ now documents the full API [2243](https://github.com/plotly/plotly.py/pull/2243) - New documentation examples for facets [2235](https://github.com/plotly/plotly.py/pull/2235), legend [#2227](https://github.com/plotly/plotly.py/pull/2227), subplots [#2226](https://github.com/plotly/plotly.py/pull/2226), axes [#2234](https://github.com/plotly/plotly.py/pull/2234) and histograms [#2242](https://github.com/plotly/plotly.py/pull/2242). Thanks to [SylwiaOliwia2](https://github.com/SylwiaOliwia2) for all these great examples! Fixed - Jupyterlab extension now compatible with both Jupyterlab 1.2 and 2.0 [2261](https://github.com/plotly/plotly.py/pull/2261) with thanks to [consideRatio](https://github.com/consideRatio) for the contribution! - Fixed a bug when using boolean values for the color argument of px functions [2127](https://github.com/plotly/plotly.py/pull/2127) - Corrected import bug which was occurring with old versions of ipywidgets [2265](https://github.com/plotly/plotly.py/pull/2265) - Fixed python 3.8 syntax warning [2262](https://github.com/plotly/plotly.py/pull/2262), with thanks to [sgn](https://github.com/sgn) for the contribution! ``` ### 4.5.3 ``` Updated - Removed development dependency on `nose` testing framework [2217](https://github.com/plotly/plotly.py/pull/2217) Fixed - JupyterLab extension now compatible with JupyterLab 2.0 [2245](https://github.com/plotly/plotly.py/pull/2245) with thanks to [consideRatio](https://github.com/consideRatio) for the contribution! ``` ### 4.5.2 ``` Fixed - Fix build errors in JupyterLab extension by pinning version of `types/plotly.js` [2223](https://github.com/plotly/plotly.py/issues/2223) ``` ### 4.5.1 ``` Updated - Updated Plotly.js to version 1.52.2. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/releases/tag/v1.52.2) for more information on bug fixes. Fixed - `update_annotations`, `update_shapes` and `update_layout_images` now no longer require the `patch` argument, as per the docstring [2167](https://github.com/plotly/plotly.py/issues/2167) - `px.defaults` no longer accepts arbitrary keys [2168](https://github.com/plotly/plotly.py/issues/2168) - better error message when `pandas` is not installed [2125](https://github.com/plotly/plotly.py/issues/2125) - support columns of numerical type in `path` argument of `px.sunburst`/`px.treemap` and add values of `color` column in hoverlabel for `px.sunburst`/`px.treemap` [2133](https://github.com/plotly/plotly.py/pull/2133) ``` ### 4.5.0 ``` Updated - Updated Plotly.js to version 1.52.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.52.0/CHANGELOG.md#1520----2020-01-08) for more information on numerous new attribute and bug fixes. - Plotly Express uses the new `legend.title` attribute and so now has shorter trace `name`s [2051](https://github.com/plotly/plotly.py/pull/2051) - The heuristic used by `px.parallel_categories` to determine which columns of the data frame to draw has been changed and made more configurable with the `dimensions_max_cardinality` argument [2102](https://github.com/plotly/plotly.py/pull/2102) - The `simple_white` colorbar styling has been streamlined [2110](https://github.com/plotly/plotly.py/pull/2110) - The `jupyterlab-plotly` and `plotlywidget` JupyterLab extensions should now share code when installed together, resulting in smaller JupyterLab vendor bundle sizes [2103](https://github.com/plotly/plotly.py/pull/2103) Fixed - Plotly Express `category_orders` are now respected independent of the contents of the data set [2084](https://github.com/plotly/plotly.py/issues/2084) - `go.Scattergl` symbols now accept numeric specification [1928](https://github.com/plotly/plotly.py/issues/1928) - `px.scatter` trendline coefficients are now more readable [1984](https://github.com/plotly/plotly.py/issues/1984) - Built-in cyclical color scales now all have identical start and end points [2016](https://github.com/plotly/plotly.py/pulls/2016) Added - `px.sunburst` and `px.treemap` now accept a `path` argument for passing columns of a rectangular dataframe to build the charts [2006](https://github.com/plotly/plotly.py/pull/2006) - `px.choropleth` now accepts a user-supplied `geojson` attribute [2057](https://github.com/plotly/plotly.py/pull/2057) - `px.choropleth` and `px.choropleth_mapbox` now accept `featureidkey` to specify the GeoJSON field to use to match `locations` [2057](https://github.com/plotly/plotly.py/pull/2057) - `px.choropleth` and `px.choropleth_mapbox` now accept discrete color [2057](https://github.com/plotly/plotly.py/pull/2057) - `px.bar_polar` now accepts continuous color [2017](https://github.com/plotly/plotly.py/pull/2017) - New `layout.uniformtext` attribute allows for automatic standardization of font sizes across bar-like and hierarchical traces. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/v1.52.0/CHANGELOG.md#1520----2020-01-08) for more information ``` ### 4.4.1 ``` Fixed - Fixed improper JSON encoding exception when the `pillow` module not installed [1993](https://github.com/plotly/plotly.py/pull/1993) ``` ### 4.4.0 ``` Updated - Updated Plotly.js to version 1.51.2. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#1512----2019-11-25) for more information - The tutorials of the [plotly.py documentation](https://plot.ly/python/) are now in the main [plotly.py Github repository](https://github.com/plotly/plotly.py). Contributions in order to improve or extend the documentation are very welcome! - `plotly.express` generated plots no longer have a default height of 600 pixels, instead they inherit the default height of regular figures [1990](https://github.com/plotly/plotly.py/pull/1990). To restore the old behavior, set `px.defaults.height=600` once per session, or set the `height` keyword argument to any `px.function()` to 600. Fixed - Fixed a plotly.express input bug when using data frame indices[1934](https://github.com/plotly/plotly.py/pull/1934) - Fixed how to display facet labels with plotly express [1966](https://github.com/plotly/plotly.py/pull/1966) - Fixed a bug to use correctly the `zmin/zmax` parameter in `px.imshow` for single-channel images [1981](https://github.com/plotly/plotly.py/pull/1981) - Clipped docstring width for better display in Jupyterlab [1939](https://github.com/plotly/plotly.py/pull/1939). Thank you joelostblom! - Fixed a bug in the case of external orca server [1915](https://github.com/plotly/plotly.py/pull/1915) thank you dev-dsp! Added - Extended the plotly.express functional API with 7 new functions: `px.pie`, `px.sunburst`, `px.treemap`, `px.funnel`, and `px.funnel_area` ([1909](https://github.com/plotly/plotly.py/pull/1909)) `px.density_mapbox` and `px.choropleth_mapbox` [1937](https://github.com/plotly/plotly.py/pull/1937). - plotly.express mapbox functions in plotly.express have new arguments `center` and `mapbox_style` [1937](https://github.com/plotly/plotly.py/pull/1937). - plotly.express polar plots (`scatter_polar`, `line_polar`, `bar_polar`) now have a `range_theta` keyword argument for representing only an angular section [1969](https://github.com/plotly/plotly.py/pull/1969). - All continuous colorscales now accept a `_r` suffix that reverses their direction [1933](https://github.com/plotly/plotly.py/pull/1933) - Docstrings of plotly.py are now doctested [1921](https://github.com/plotly/plotly.py/pull/1921). - Reversing a predefined colorscale by appending `_r` to its name [1933](https://github.com/plotly/plotly.py/pull/1933) ``` ### 4.3.0 ``` Updated - Updated Plotly.js to version 1.51.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#1511----2019-11-04) for more information - Improved propagation of empty templates ([1892](https://github.com/plotly/plotly.py/pull/1892)) - Update the `add_annotations`/`add_shapes`/`add_images` methods to no longer default to adding objects in paper coordinates. This allows plotly.js to determine the default reference frame based on context ([1888](https://github.com/plotly/plotly.py/pull/1888)) - Use the default template's background color for displaying color swatches ([1872](https://github.com/plotly/plotly.py/pull/1872)). Special thanks to [joelostblom](https://github.com/joelostblom) for this contribution! - Improved docstrings ([1835](https://github.com/plotly/plotly.py/pull/1835), [#1837](https://github.com/plotly/plotly.py/pull/1837)) Added - Added image trace type ([plotly.js4289](https://github.com/plotly/plotly.js/pull/4289), [plotly.js#4307](https://github.com/plotly/plotly.js/pull/4307), [plotly.js#4313](https://github.com/plotly/plotly.js/pull/4313), [plotly.js#4319](https://github.com/plotly/plotly.js/pull/4319)) - Added matplotlib-style `plotly.express.imshow` convenience function to display images and heatmaps ([1855](https://github.com/plotly/plotly.py/pull/1855), [#1885](https://github.com/plotly/plotly.py/pull/1885)) - Added matplotlib-style `simple_white` template ([1864](https://github.com/plotly/plotly.py/pull/1864)). Special thanks to [joelostblom](https://github.com/joelostblom) for this contribution. - Added support for using an externally managed orca server for image export features ([1850](https://github.com/plotly/plotly.py/pull/1850)). Special thanks to [miriad](https://github.com/miriad) for this contribution. - Added facet wrapping support to plotly express functions using the new `facet_col_wrap` argument ([1838](https://github.com/plotly/plotly.py/pull/1838)) ``` ### 4.2.1 ``` Fixed - Fixed regression in 4.2.0 that caused all figure factories to require that scikit-image be installed ([1832](https://github.com/plotly/plotly.py/pull/1832)) ``` ### 4.2.0 ``` Updated - Updated Plotly.js to version 1.50.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#1501----2019-10-15) for more information Added - Added `treemap` trace type ([plotly.js4185](https://github.com/plotly/plotly.js/pull/4185), [plotly.js#4219](https://github.com/plotly/plotly.js/pull/4219), [plotly.js#4227](https://github.com/plotly/plotly.js/pull/4227), [plotly.js#4242](https://github.com/plotly/plotly.js/pull/4242)) - Added `add_*`/`select_*`/`for_each_*`/`update_*` convenience figure methods for annotations, shapes, and images ([1817](https://github.com/plotly/plotly.py/pull/1817)) - Added `overwrite` kwarg to `update*` figure methods to fully replace property values, rather than update them recursively ([1726](https://github.com/plotly/plotly.py/pull/1726)) - Added `texttemplate` attribute to all traces that support on-graph text ([plotly.js4071](https://github.com/plotly/plotly.js/pull/4071), [plotly.js#4179](https://github.com/plotly/plotly.js/pull/4179)) - Added date custom formatting in `hovertemplate` and `texttemplate` e.g. `'%{x|%b %-d, %Y}'` ([plotly.js4071](https://github.com/plotly/plotly.js/pull/4071)) - Added transition support to `bar` trace length, width, on-graph text positioning, marker style and error bars ([plotly.js4180](https://github.com/plotly/plotly.js/pull/4180), [plotly.js#4186](https://github.com/plotly/plotly.js/pull/4186)) - Added support for legend scrolling via touch interactions ([plotly.js3873](https://github.com/plotly/plotly.js/pull/3873), [plotly.js#4214](https://github.com/plotly/plotly.js/pull/4214)) Fixed - Fixed `iframe` renderer on Python 2 ([1822](https://github.com/plotly/plotly.py/pull/1822)) - Fixed use of merged templates in plotly.express ([1819](https://github.com/plotly/plotly.py/pull/1819)) ``` ### 4.1.1 ``` Updated - Updated Plotly.js to version 1.49.4. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#1494----2019-08-22) for more information - The width of a figure produced by the `create_gantt` figure factory now resizes responsively ([1724](https://github.com/plotly/plotly.py/pull/1724)) Fixed - The name of the steps property of `graph_objects.indicator.Gauge` has been renamed from `stepss` to `steps` - Avoid crash in iframe renderers when running outside iPython ([1723](https://github.com/plotly/plotly.py/pull/1723)) ```Links
- PyPI: https://pypi.org/project/plotly - Changelog: https://pyup.io/changelogs/plotly/ - Homepage: https://plotly.com/python/