Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update plotly to 5.24.0 #339

Closed
wants to merge 1 commit into from
Closed

Conversation

pyup-bot
Copy link
Collaborator

This PR updates plotly from 4.1.0 to 5.24.0.

Changelog

5.23.0

Updated
- Updated Plotly.js from version 2.32.0 to version 2.34.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2340----2024-07-18) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
- Add `subtitle` attribute to `layout.title` to enable adding subtitles to plots [[7012](https://github.com/plotly/plotly.js/pull/7012)]
- Introduce "u" and "s" pseudo html tags to add partial underline and strike-through styles to SVG text elements [[7043](https://github.com/plotly/plotly.js/pull/7043)]
- Add geometric mean functionality and 'geometric mean ascending' + 'geometric mean descending' to `category_order` on cartesian axes [[6223](https://github.com/plotly/plotly.js/pull/6223)],
with thanks to acxz and prabhathc for the contribution!
- Add axis property `ticklabelindex` for drawing the label for each minor tick n positions away from a major tick,
with thanks to my-tien for the contribution! [[7036](https://github.com/plotly/plotly.js/pull/7036)]
- Add property `ticklabelstandoff` and `ticklabelshift` to cartesian axes to adjust positioning of tick labels,
with thanks to my-tien for the contribution! [[7006](https://github.com/plotly/plotly.js/pull/7006)]
- Add `x0shift`, `x1shift`, `y0shift`, `y1shift` to shapes to add control over positioning of shape vertices on (multi-)category axes,
with thanks to my-tien for the contribution! [[7005](https://github.com/plotly/plotly.js/pull/7005)]
- Specify Python version 3.8-3.11 for development virtual environments and pin `pytest` at version 8.1.1 to match.
- Update `IntegerValidator` to handle `extras` option to allow supporting additional keyword values. For example, 'bold' and 'normal' as well as integers as used in font weights [4612].

5.22.0

Updated
- Updated Plotly.js from version 2.31.1 to version 2.32.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2320----2024-04-23) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
- Add "bold" weight, "italic" style and "small-caps" variant options to fonts [6956]
- Fix applying autotickangles on axes with showdividers as well as cases where tickson is set to "boundaries" [6967], with thanks to my-tien for the contribution!
- Fix positioning of multi-line axis titles with standoff [6970], with thanks to my-tien for the contribution!

5.21.0

Updated
- Updated Plotly.js from version 2.30.0 to version 2.31.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2311----2024-04-15) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
- Add `zorder` attribute to various cartesian traces for controlling stacking order of SVG traces drawn into a subplot [[6918](https://github.com/plotly/plotly.js/pull/6918), [#6953](https://github.com/plotly/plotly.js/pull/6953)],
 This feature was anonymously sponsored: thank you to our sponsor!
- Add "between" option to shape layer for placing them above grid lines and below traces [[6927](https://github.com/plotly/plotly.js/pull/6927)],
 with thanks to my-tien for the contribution!
- Add "raw" `sizemode` to cone trace [[6938](https://github.com/plotly/plotly.js/pull/6938)]
- Add `layout.hoversubplots` to enable hover effects across multiple cartesian suplots sharing one axis [[6947](https://github.com/plotly/plotly.js/pull/6947), [#6950](https://github.com/plotly/plotly.js/pull/6950)]

Fixed
- Fixed `orjson` loading issue [[4562](https://github.com/plotly/plotly.py/pull/4562)]

5.20.0

Updated
- Updated Plotly.js from version 2.29.1 to version 2.30.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2300----2024-03-06) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
- Add fill gradients for scatter traces [[6905](https://github.com/plotly/plotly.js/pull/6905)], with thanks to lumip for the contribution!
- Add `indentation` to legend [[6874](https://github.com/plotly/plotly.js/pull/6874)], with thanks to my-tien for the contribution!

5.19.0

Updated

- Updated Plotly.js from version 2.27.0 to version 2.29.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2291----2024-02-12) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
- Add `layout.barcornerradius` and `trace.marker.cornerradius` properties to support rounding the corners of bar traces [[6761](https://github.com/plotly/plotly.js/pull/6761)],
with thanks to [Displayr](https://www.displayr.com) for sponsoring development!
- Add `autotickangles` to cartesian and radial axes [[6790](https://github.com/plotly/plotly.js/pull/6790)], with thanks to my-tien for the contribution!
- Add `align` option to sankey nodes to control horizontal alignment [[6800](https://github.com/plotly/plotly.js/pull/6800)],
with thanks to adamreeve for the contribution!
- Add the possibility of loading "virtual-webgl" script for WebGL 1 to help display several WebGL contexts on a page [[6784](https://github.com/plotly/plotly.js/pull/6784)], with thanks to greggman for the contribution!
- Add options to use base64 encoding (`bdata`) and `shape` (for 2 dimensional arrays) to declare various typed arrays i.e. `dtype=(float64|float32|int32|int16|int8|uint32|uint16|uint8)` [[5230](https://github.com/plotly/plotly.js/pull/5230)]
-  Adjust stamen styles to point to `stadiamaps.com`, the users may also need to provide their own API_KEY via `config.mapboxAccessToken` [[6776](https://github.com/plotly/plotly.js/pull/6776), [#6778](https://github.com/plotly/plotly.js/pull/6778)]
- Removed Python 3.6 and Python 3.7 support [[4492](https://github.com/plotly/plotly.py/pull/4492)]

Fixed
- Ensure scatter `mode` is deterministic from `px` [[4429](https://github.com/plotly/plotly.py/pull/4429)]
- Fix issue with creating dendrogram in subplots [[4411](https://github.com/plotly/plotly.py/pull/4411)],
- Fix issue with px.line not accepting "spline" line shape [[2812](https://github.com/plotly/plotly.py/issues/2812)]
- Fix KeyError when using column of `pd.Categorical` dtype with unobserved categories [[4437](https://github.com/plotly/plotly.py/pull/4437)]
- Fix dataframe interchange in case `column_names` returns an unmaterialized object: generator, iterator, etc. [[4442]](https://github.com/plotly/plotly.py/pull/4442)
- Fix issue with `FutureWarning` being displayed when setting the `color` argument in `plotly.express` [[4519]](https://github.com/plotly/plotly.py/pull/4519)

5.18.0

Updated
- Updated Plotly.js from version 2.26.0 to version 2.27.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2270----2023-10-20) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
- Add `insiderange` to cartesian axes to help avoid overlap between visible grid lines and tick labels of the counter axis when they are positioned inside [[6735](https://github.com/plotly/plotly.js/pull/6735)], this feature was anonymously sponsored: thank you to our sponsor!
- Fix column order changes on hover [[6718](https://github.com/plotly/plotly.js/pull/6718)],
with thanks to bhavinpatel1109 for the contribution!
- Fix hover at timestamp '1970-01-01 00:00:00' [[6752](https://github.com/plotly/plotly.js/pull/6752)],
with thanks to adamjhawley for the contribution!
- Fix clearing empty `candlestick` using react [[6757](https://github.com/plotly/plotly.js/pull/6757)]

Fixed
- Repair crash on Matplotlib 3.8 related to get_offset_position [[4372](https://github.com/plotly/plotly.py/pull/4372)],
- Handle deprecation of `pandas.Series.dt.to_pydatetime()` calls and suppress the `FutureWarning` they currently emit. [[4379](https://github.com/plotly/plotly.py/pull/4379)]

5.17.0

Updated
- Improved json docstrings, added `BasePlotlyType.to_json()` method [[4301](https://github.com/plotly/plotly.py/pull/4301)]
- Updated Plotly.js from version 2.25.2 to version 2.26.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2260----2023-08-24) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
- Add "min", "max", "min reversed" and "max reversed" autorange options and handle partial ranges (i.e. one end being null), add `autorangeoptions` (`clipmin`, `clipmax`, `minallowed`, `maxallowed`, `include`) as well as `minallowed` and `maxallowed` to cartesian, gl3d and radial axes [[6547](https://github.com/plotly/plotly.js/pull/6547)]
- Add [n]-sigma (std deviations) box plots as an alternative to quartiles [[6697](https://github.com/plotly/plotly.js/issues/6697)], with thanks to 28raining for the contribution!
- Add "top left" & "top center" side options to legend title [[6711](https://github.com/plotly/plotly.js/pull/6711)], with thanks to 28raining for the contribution!
- Add "false" option to `scaleanchor` to allow removing a constraint that is set by default [[6712](https://github.com/plotly/plotly.js/pull/6712)], with thanks to lvlte for the contribution!


Fixed
- Fixed two issues with px.imshow: [[4330](https://github.com/plotly/plotly.py/issues/4330)] when facet_col is an earlier dimension than animation_frame for xarrays and [[#4329](https://github.com/plotly/plotly.py/issues/4329)] when facet_col has string coordinates in xarrays [[#4331](https://github.com/plotly/plotly.py/pull/4331)]

5.16.1

Fixed
- Fixed issue with necessary columns from complex arguments dropped when interchanging dataframes [[4324](https://github.com/plotly/plotly.py/pull/4324)]

5.16.0

Updated
- Updated Plotly.js from version 2.24.1 to version 2.25.2. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2252----2023-08-11) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include:
-  Add "Equal Earth" projection to geo subplots [[6670](https://github.com/plotly/plotly.js/pull/6670)],
with thanks to apparebit for the contribution!
- Add options to include legends for shapes and `newshape` [[6653](https://github.com/plotly/plotly.js/pull/6653)]
- `px` methods now accept data-frame-like objects that support a [dataframe interchange protocol](https://data-apis.org/dataframe-protocol/latest/index.html), such as polars, vaex, modin etc. This protocol has priority on `to_pandas` call, but will only be used if pandas>=2.0.2 is installed in the environment.
- `px` methods now accept data-frame-like objects that support a `toPandas()` method, such as Spark DataFrames, or a `to_pandas_df()` method, such as Vaex DataFrames.

Fixed
- Fixed Pandas performance warning issue caused by multiple `frame.insert` [[4246](https://github.com/plotly/plotly.py/pull/4246)]

5.15.0

Updated
- Updated Plotly.js from version 2.20.0 to version 2.24.1. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2241----2023-06-07) for more information. Notable changes include:
 - Add pattern to pie, funnelarea, sunburst, icicle and treemap traces [[6601](https://github.com/plotly/plotly.js/pull/6601), [#6619](https://github.com/plotly/plotly.js/pull/6619), [#6622](https://github.com/plotly/plotly.js/pull/6622), [#6626](https://github.com/plotly/plotly.js/pull/6626), [#6627](https://github.com/plotly/plotly.js/pull/6627), [#6628](https://github.com/plotly/plotly.js/pull/6628), [#6629](https://github.com/plotly/plotly.js/pull/6629)], with thanks to thierryVergult for the contribution!
 - Add `texttemplate` to shape.label for parametric shapes i.e. line, rect and circle [[6527](https://github.com/plotly/plotly.js/pull/6527)],
with thanks to the [Volkswagen](https://www.volkswagenag.com) Center of Excellence for Battery Systems for sponsoring development!
 - Add strict option to custom bundle command [[6557](https://github.com/plotly/plotly.js/pull/6557)],
with thanks to CallumNZ for the contribution!
 - Add `legend` references to traces and `legend2`, `legend3`, etc. to layout,
also add `visible` to legend i.e. to allow positioning multiple legends on a graph [[6535](https://github.com/plotly/plotly.js/pull/6535)],
this feature was anonymously sponsored: thank you to our sponsor!
 - Add `legend.xref` and `legend.yref` to enable container-referenced positioning of legends [[6589](https://github.com/plotly/plotly.js/pull/6589)], with thanks to [Gamma Technologies](https://www.gtisoft.com/) for sponsoring the related development.
 - Add `colorbar.xref` and `colorbar.yref` to enable container-referenced positioning of colorbars [[6593](https://github.com/plotly/plotly.js/pull/6593)], with thanks to [Gamma Technologies](https://www.gtisoft.com/) for sponsoring the related development.
- `px` methods now accept data-frame-like objects that support a `to_pandas()` method, such as polars, cudf, vaex etc [[4244](https://github.com/plotly/plotly.py/pull/4244)], [[#4286](https://github.com/plotly/plotly.py/pull/4286)]

Fixed
- Fixed another compatibility issue with Pandas 2.0, just affecting `px.*(line_close=True)` [[4190](https://github.com/plotly/plotly.py/pull/4190)]
- Empty pandas dataframe with facet row/column set no longer fails [[4038](https://github.com/plotly/plotly.py/pull/4038)]
- Added some rounding to the `make_subplots` function to handle situations where the user-input specs cause the domain to exceed 1 by small amounts [[4153](https://github.com/plotly/plotly.py/pull/4153)]
- Sanitize JSON output to prevent an XSS vector when graphs are inserted directly into HTML [[4196](https://github.com/plotly/plotly.py/pull/4196)]
- Fixed issue with shapes and annotations plotting on the wrong y axis when supplied with a specific axis in the `yref` parameter [[4177](https://github.com/plotly/plotly.py/pull/4177)]
- Remove `use_2to3` setuptools arg, which is invalid in the latest Python and setuptools versions [[4206](https://github.com/plotly/plotly.py/pull/4206)]
- Fix [4066](https://github.com/plotly/plotly.py/issues/4066) JupyterLab v4 giving tiny default graph height [[#4227](https://github.com/plotly/plotly.py/pull/4227)]
- Fixed issue with `colors.n_colors` where generated RGB color values were not being constrained to stay between 0 and 255 [[4110](https://github.com/plotly/plotly.py/pull/4110)]
- Fix streamline figure factory with recent versions of Numpy
- Fix issue with shapes and annotations not drawing on correct axis [[4177](https://github.com/plotly/plotly.py/pull/4177)]

5.14.1

Fixed
- Fixed compatibility issue with Pandas 2.0 [[4103](https://github.com/plotly/plotly.py/pull/4103)]

5.14.0

Updated
- Updated Plotly.js from version 2.18.2 to version 2.20.0. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2200----2023-03-15) for more information. Notable changes include:
 - Add `title.automargin` to enable automatic top and bottom margining for both container and paper referenced titles [[6428](https://github.com/plotly/plotly.js/pull/6428)],
with thanks to [Gamma Technologies](https://www.gtisoft.com/) for sponsoring the related development.
 - Add `label` attribute to shapes [[6454](https://github.com/plotly/plotly.js/pull/6454)], with thanks to the [Volkswagen](https://www.volkswagenag.com) Center of Excellence for Battery Systems for sponsoring development!
 - Add `labelalias` to various axes namely cartesian, gl3d, polar, smith, ternary, carpet,
indicator and colorbar [[6481](https://github.com/plotly/plotly.js/pull/6481)],
this feature was anonymously sponsored: thank you to our sponsor!
- Key errors no longer precalculated when performing updates on plots [[4101](https://github.com/plotly/plotly.py/pull/4101)]

Fixed
- Fixed an issue with characters displaying incorrectly, by adding `charset="utf-8"` to scripts in `to_html` [[4114](https://github.com/plotly/plotly.py/pull/4114)]
- Added `packaging` to install requirements, fixing a `No module named 'packaging` error on Python 3.6 [[4113](https://github.com/plotly/plotly.py/pull/4113)]

Added
- Added option to allow passing a column name as a `str` in `hover_data` and `custom_data` in `plotly.express` [[4083](https://github.com/plotly/plotly.py/pull/4083)]

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 [19

@pyup-bot pyup-bot mentioned this pull request Aug 29, 2024
@pyup-bot
Copy link
Collaborator Author

Closing this in favor of #341

@pyup-bot pyup-bot closed this Sep 12, 2024
@mkhorton mkhorton deleted the pyup-update-plotly-4.1.0-to-5.24.0 branch September 12, 2024 15:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant