All Versions
156
Latest Version
Avg Release Cycle
36 days
Latest Release
518 days ago

Changelog History
Page 4

  • v4.8.0 Changes

    May 26, 2020

    ๐Ÿ“š Key new documentation pages:

    โž• 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)
    • New datasets have been added to plotly.express.data: stocks, experiment, medals_wide and medals_long. (#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. In particular, with _repr_html_ plotly figures can now be used within sphinx-gallery 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):
      • wide-form data support: 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 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 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)
    • 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)
  • v4.7.1 Changes

    May 08, 2020

    ๐Ÿ›  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, #1111).
    • Fix TypeError: unhashable type: 'Template' during Figure construction when plotly.io.templates.default is set to a Template object rather than a string.
  • v4.7.0 Changes

    May 06, 2020

    โšก๏ธ Updated

    • โšก๏ธ Updated Plotly.js to version 1.54.1. See the plotly.js CHANGELOG 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

    โž• 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.
    • ๐Ÿ— 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. Thanks @zouhairm for this Pull Request!

    ๐Ÿ›  Fixed

    • Plotly Express trendlines now handle missing data correctly #2357

    ๐ŸŽ Performance

    ๐ŸŽ This version includes several performance improvements (#2368, #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 to perform submodule imports lazily. This dramatically improves import times.
  • v4.6 Changes

    March 31, 2020

    โšก๏ธ Updated

    • Updated Plotly.js to version 1.53.0. See the plotly.js CHANGELOG 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 for more explanations on how to contribute to plotly.py #2290. Please give feedback on these notes!
      • ๐Ÿ“š Updated documentation examples #2325, and to show how to color links in Sankey diagrams #2291.
      • ๐Ÿ“š Special thanks to @SylwiaOliwia2 and @dangercrow for improving our documentation!

    โž• Added

    • ๐Ÿ“‡ px.imshow now accepts xarray inputs, with metadata being used for axis labels, hover and colorbar #2166

    ๐Ÿ›  Fixed

    • Fixed handling of opacity in px.pie, px.funnel_area, px.density_mapbox, px.funnel #2317, with thanks to @tvaucher for the contribution!
  • v4.5.4 Changes

    March 11, 2020

    โšก๏ธ Updated

    ๐Ÿ›  Fixed

    • Jupyterlab extension now compatible with both Jupyterlab 1.2 and 2.0 #2261 with thanks to @consideRatio for the contribution!
    • ๐Ÿ›  Fixed a bug when using boolean values for the color argument of px functions #2127
    • Corrected import bug which was occuring with old versions of ipywidgets #2265
    • ๐Ÿ›  Fixed python 3.8 syntax warning #2262, with thanks to @sgn for the contribution!
  • v4.5.3 Changes

    March 05, 2020

    โšก๏ธ Updated

    • โœ‚ Removed development dependency on nose testing framework #2217

    ๐Ÿ›  Fixed

    • JupyterLab extension now compatible with JupyterLab 2.0 #2245 with thanks to @consideRatio for the contribution!
  • v4.5.2 Changes

    February 24, 2020

    ๐Ÿ›  Fixed

    • Fix build errors in JupyterLab extension by pinning version of @types/plotly.js #2223
  • v4.5.1 Changes

    February 19, 2020

    โšก๏ธ Updated

    • Updated Plotly.js to version 1.52.2. See the plotly.js CHANGELOG 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
    • px.defaults no longer accepts arbitrary keys #2168
    • better error message when pandas is not installed #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
  • v4.5.0 Changes

    January 22, 2020

    [4.5.0] - 2020-01-22

    โšก๏ธ Updated

    • โšก๏ธ Updated Plotly.js to version 1.52.1. See the plotly.js CHANGELOG for more information on numerous new attribute and bug fixes.
    • Plotly Express uses the new legend.title attribute and so now has shorter trace names #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
    • The simple_white colorbar styling has been streamlined #2110
    • The jupyterlab-plotly and plotlywidget JupyterLab extensions should now share code when installed together, resulting in smaller JupyterLab vendor bundle sizes #2103

    ๐Ÿ›  Fixed

    • Plotly Express category_orders are now respected independent of the contents of the data set #2084
    • go.Scattergl symbols now accept numeric specification #1928
    • px.scatter trendline coefficients are now more readable #1984
    • Built-in cyclical color scales now all have identical start and end points #2016

    โž• Added

    • px.sunburst and px.treemap now accept a path argument for passing
      ๐Ÿ— columns of a rectangular dataframe to build the charts #2006
    • px.choropleth now accepts a user-supplied geojson attribute #2057
    • px.choropleth and px.choropleth_mapbox now accept featureidkey to specify the GeoJSON field to use to match locations #2057
    • px.choropleth and px.choropleth_mapbox now accept discrete color #2057
    • px.bar_polar now accepts continuous color #2017
    • ๐Ÿ†• New layout.uniformtext attribute allows for automatic standardization of font sizes across bar-like and hierarchical traces. See the plotly.js CHANGELOG for more information
  • v4.5.0.rc1

    January 22, 2020