Skip to content

Releases: plotly/plotly.py

v3.6.0

01 Feb 23:02
256e2f4
Compare
Choose a tag to compare

[3.6.0] - 2019-02-01

Updated

  • Updated Plotly.js to version 1.44.1. Select highlights included below.
    See the plotly.js CHANGELOG for more information.

Added

  • Add isosurface gl3d trace type (plotly/plotly.js#3438)
  • Preview of ternary contour figure factory (#1413). Special thanks to @emmanuelle for this contribution!
  • Add support for line.color colorbars for scatter3d traces (#1085, plotly/plotly.js#3384)
  • Add support for hovertemplate on scatterpolar, scatterpolargl, scatterternary, barpolar, choropleth, scattergeo, and scattermapbox trace (plotly/plotly.js#3398, plotly/plotly.js#3436)
  • Add width attribute to box and violin traces (plotly/plotly.js#3234)
  • Add support for <sup>, <sup>, <b>, <i> and <em> pseudo-html tags in extra (aka trace "name") hover labels (plotly/plotly.js#3443)
  • Add 4 additional colors to the colorway cycle of the plotly themes (#1408)
  • Automatically coerce array-like objects (e.g. xarray DataArrays) to numpy arrays (#1393). Special thanks to @malmaud for this contribution!

Fixed

  • Fix annotated heatmap text color when values are specified as a nested list (#1300)
  • Fix update method with legacy title* properties (#1403)
  • Fix deprecation warnings on Python 3.7 and ipywidgets > 7.0 (#1417). Special thanks to @Juanlu001 for this contribution!

v3.5.0

01 Feb 23:01
bcf4a2a
Compare
Choose a tag to compare

[3.5.0] - 2019-01-04

Updated

Changed

  • Plotly.js 1.43 converted title properties (e.g. layout.title) from
    strings into compound objects that contain the text as the text property
    along with new title placement attributes x, y, xref, yref, xanchor,
    yanchor and pad. Plotly.py 3.5.0 follows the new schema, but still
    supports specifying title as a string, in which case the string is assigned
    to the title.text property
    (#1302)
  • Plotly.js 1.43 also moved existing title* properties
    (e.g. layout.titlefont) under the title object (e.g. layout.title.font).
    Plotly.py 3.5.0 follows the new schema, but still
    supports the legacy title* properties by mapping them to the corresponding
    title.* property
    (#1302)
  • The update method on graph_objs now returns the updated object in order
    to support chaining multiple update operations together
    (#1379)
  • The show_link option has been set to False by default in the offline
    plot and iplot functions. Now that the "send data to cloud" button has
    been disabled by default in plotly.js 1.43.0, no buttons/links will be
    displayed by default that result in data being sent off of the local machine
    (#1304)
  • config options that are not known by plotly.py result in a warning but are
    still passed along to plotly.js. Prior to this change these unknown options
    were dropped silently
    (#1290)
  • Built-in themes now specify colorscales using the new global
    layout.colorscale properties. Previously the colorscales were defined for
    each trace type individually. This reduces the size of the resulting theme
    files
    (#1303)
  • Increased the maximum retry time of the orca integration from 8s to 30s
    (#1297)

Fixed

  • Fixed FigureWidget performance regression that, when working with
    large datasets, resulted in a slight freeze of the widget after user
    interactions (pan, zoom, etc)
    (1305)
  • Fix orca error when the ELECTRON_RUN_AS_NODE environment variable is set
    (#1293)
  • The 'responsive' config key was being silently blocked
    (#1290)
  • Fixed error when using unicode characters in string properties on Python 2
    (#1289)
  • Removed invalid calls to non-existent validate and strip_style Figure
    methods in matplotlylib conversion logic
    (#1128)

v3.4.2

23 Nov 16:26
618ee2d
Compare
Choose a tag to compare

[3.4.2] - 2018-11-23

Fixed

  • config options are now supported when using plotly.offline.iplot to
    display a figure in JupyterLab. Requires version 0.18.1 of the
    @jupyterlab/plotly-extension extension.
    (#1281, jupyterlab/jupyter-renderers#168)
  • Custom plotly_domain values are now supported in FigureWidget in both
    the classic notebook and JupyterLab (#1284)

v3.4.1

09 Nov 13:32
a8ae062
Compare
Choose a tag to compare

[3.4.1] - 2018-11-09

Updated

Fixed

  • Fixed histogram binning with pandas Series or numpy array
    (regression introduced in 3.4.0)
    (#1257,
    plotly/plotly.js#3211)
  • Fixed incorrect validation error on the args property of
    layout.updatemenu.Button() when value is a list that starts with a list
    (#1265)
  • Fixed deadlock causing plotly.io.write_image to hang on Windows after
    exporting more than ~25 images
    (#1255)
  • Fixed plot display error for scattergl trace with mode='lines' and
    more than 100k points
    (#1271)
  • Fixed responsive resizing error with iplot in the classic notebook
    (#1263)

v3.4.0

02 Nov 15:49
be25c50
Compare
Choose a tag to compare

[3.4.0] - 2018-11-02

Updated

  • Updated Plotly.js to version 1.42.2. Select highlights included below, see
    the plotly.js CHANGELOG for more information.

Added

  • Default figure properties may now be customized using figure
    templates (themes) and 7 new predefined templates are bundled with
    plotly.py
    (#1224)
  • Added Parallel Categories (parcats) trace type for the visualization
    of multi-dimensional categorical datasets
    (plotly/plotly.js#2963)
  • Added LaTeX typesetting support for figures displayed in the Jupyter
    Notebook using plotly.offline.iplot and plotly.graph_objs.FigureWidget.
    Note: There are still outstanding issues with MathJax rendering in FireFox,
    but it is now working well in Chrome.
    (#1243)
  • Added include_mathjax argument to plotly.offline.plot to support
    the creation of HTML files with LaTeX typesetting
    (#1243)
  • Added new plotly.offline.get_plotlyjs function that returns the
    contents of the bundled plotly.js library as a string
    (#637,
    #1246)
  • Added new plotly.offline.get_plotlyjs_version function that returns
    the version of the bundled plotly.js library
    (#1246)
  • HTML div strings returned by plotly.offline.plot now contain logic
    to automatically resize the figure responsively. This logic was previously
    only added for html files.
    (#1043,
    #1234)
  • Figures displayed using plotly.offline.iplot in the classic Jupyter
    Notebook will now resize responsively
    (#1234)
  • Added 'cdn', 'directory', and path string include_plotlyjs options
    in plotly.offline.plot
    (#1234)
    • When 'cdn', the resulting html file/div includes a script tag reference
      to the plotlyjs cdn.
    • When 'directory', the resulting html file/div includes a script tag
      reference to a plotly.min.js bundle in the same directory as the html file.
      If output_type is 'file' then this plotly.min.js bundle is created in
      the output directory if it doesn't already exist.
    • When a string ending with '.js', the resulting html file/div includes
      a script tag that references this exact path. This can be used to point
      to a plotly.js bundle from an alternative CDN.
  • Added a new color_threshold argument to the create_dendrogram figure
    factory to control the dendrogram clustering cutoff
    (#995,
    #1075,
    #1214)
  • Added support for autorange='reversed' in 3D axes
    (#803,
    plotly/plotly.js#3141)
  • Added new gl3d tick and title auto-rotation algorithm that limits text
    overlaps
    (plotly/plotly.js#3084,
    plotly/plotly.js#3131)
  • Added modebar layout style attributes:
    orientation, bgcolor, color and activecolor
    (plotly/plotly.js#3068,
    plotly/plotly.js#3091)
  • Added title, titleposition and titlefont attributes to pie traces
    (plotly/plotly.js#2987)
  • Added hoverlabel.split attribute to ohlc and candlestick traces to
    split hover labels into multiple pieces
    (plotly/plotly.js#2959)
  • Added support for line.shape values 'hv', 'vh', 'hvh'
    and 'vhv' in scattergl traces
    (plotly/plotly.js#3087)
  • Added trace, node and link hoverinfo for sankey traces
    (#3096,
    #3150)
  • Added per-sector textfont settings in pie traces
    (#3130)

Changed

Fixed

  • Plotly's use of MathJax for LaTeX typesetting no longer interferes with
    the Jupyter Notebook's use of MathJax
    (#445,
    #360)
  • Fixed several issues with the use of reversescale=True in the
    create_annotated_heatmap figure factory
    (#1251)
  • Fixed case where plotly.offline.iplot would fail to render in the classic
    Jupyter Notebook if the notebook contained a Markdown headline with the text
    "Plotly"
    (#816)
  • None values in a scatter.hovertext list are now omitted from the
    hover label rather than being displayed as the string "None"
    (#1244)
  • Subplot titles created by plotly.tools.make_subplots are now positioned
    properly when custom row_width/column_width arguments are specified
    (#1229)
  • The bar.width property may now be specified as a numpy array or a pandas
    series
    (#1231,
    plotly/plotly.js#3169)
  • Error bars are now scaled correctly for logarithmic scatter3d traces
    (#1139)
  • Use uuid.uuid4 rather than uuid.uuid1 to work around an upstream
    Python bug
    (#1235,
    #1236)
  • The layout.grid.subplots property may now be specified as a 2D list of
    subplot identifiers
    (#1220,
    #1240)
  • Fixed scatter3d text alignment
    (#1055,
    plotly/plotly.js#3180)

JupyterLab Versions

For use with JupyterLab, the following versions of the following packages
must be installed:

  • Python Packages

    • plotly==3.4.0
    • ipywidgets>=7.2
    • notebook>=5.3
    • jupyterlab==0.35
  • JupyterLab Extensions

    • plotlywidget@0.5.0
    • @jupyter-widgets/jupyterlab-manager@0.38
    • @jupyterlab/plotly-extension@0.18

v3.3.0

28 Sep 11:33
2e5bf6e
Compare
Choose a tag to compare

[3.3.0] - 2018-09-28

Updated

  • Updated Plotly.js to version 1.41.3. Select highlights included below, see
    the plotly.js CHANGELOG
    for more information.
  • Do not create or check permissions on the ~/.plotly configuration directory until a configuration write operation is performed (#1195). This change avoids some concurrency problems associated with running many instances of
    plotly.py simultaneously (#1068).

Added

  • Enable selection by clicking on points via new layout attribute clickmode and flag 'select'
    (#2944)
  • Added stacked area charts via new attributes stackgroup and stackgaps in scatter traces
    (#2960)
  • Added barpolar trace type - which replace and augment area traces
    (#2954)
  • Added polar.hole layout parameter to punch hole at the middle of polar
    subplot offsetting the start of the radial range
    (#2977, #2996)
  • Figures may now be easily converted to and from JSON using the new
    to_json, from_json, read_json, and write_json functions in the
    plotly.io package
    (#1188)
  • Figures and graph objects now support deepcopy and pickle operations
    (#1191)
  • The location of the "~/.plotly" settings directory may now be customized
    using the PLOTLY_DIR environment variable
    (#1195)
  • Added optional scaleratio argument to the create_quiver figure factory.
    When specified, the axes are restricted to this ratio and the quiver arrows
    are computed to have consistent lengths across angles.
    (#1197)

Fixed

  • Replace use of pkg_resources.resource_string with pkgutil.get_data to
    improve compatibility with cx_Freeze
    (#1201)
  • An exception is no longer raised when an optional dependency raises an
    exception on import. The exception is logged and plotly.py continues as if
    the dependency were not installed
    (#1192)
  • Fixed invalid dendrogram axis labels when the points being clustered contain
    duplicate values
    (#1186)
  • Added missing LICENSE.txt file to PyPI source distribution
    (#765)

JupyterLab Versions

For use with JupyterLab, the following versions of the following packages
must be installed:

  • Python Packages

    • plotly==3.3.0
    • ipywidgets>=7.2
    • notebook>=5.3
    • jupyterlab==0.34
  • JupyterLab Extensions

    • plotlywidget@0.4.0
    • @jupyter-widgets/jupyterlab-manager@0.37
    • @jupyterlab/plotly-extension@0.17

v3.2.1

14 Sep 14:19
Compare
Choose a tag to compare

[3.2.1] - 2018-09-14

This is a patch release that fixes a few bugs and reintroduces a few
version 2 features that were not supported in version 3.

The bundled version of plotly.js remains at 1.40.1

JupyterLab Versions

For use with JupyterLab, the following versions of the following packages
must be installed:

  • Python Packages

    • plotly==3.2.1
    • ipywidgets>=7.2
    • notebook>=5.3
    • jupyterlab==0.34
  • JupyterLab Extensions

    • plotlywidget@0.3.0
    • @jupyter-widgets/jupyterlab-manager@0.37
    • @jupyterlab/plotly-extension@0.17

Added

  • An optional skip_invalid argument has been added to the Figure and
    FigureWidget constructors. By default, skip_invalid is False and invalid
    figure properties will result in an exception (this is identical to the
    previous behavior). When skip_invalid is set to True, invalid properties
    will instead be silently ignored. This argument replaces the _raise
    argument that was available in version 2, and makes it possible to import
    figure definitions from different plotly versions, where incompatible
    properties are ignored rather than causing an exception.
  • A to_ordered_dict method has been added to the Figure and FigureWidget
    classes. This method returns a representation of the figure as a nested
    structure of OrdererdDict and list instances where the keys in each
    OrderedDict are sorted alphabetically. This method replaces the
    get_ordered method that was available in version 2, and makes it possible
    to traverse the nested structure of a figure in a deterministic order.

Fixed

v3.2.0

05 Sep 14:15
5814699
Compare
Choose a tag to compare

[3.2.0] - 2018-09-05

This release introduces the long-anticipated ability to programmatically
export figures as high quality static images in both raster and vector
formats.

JupyterLab Versions

For use with JupyterLab, the following versions of the following packages
must be installed:

  • Python Packages

    • plotly==3.2.0
    • ipywidgets>=7.2
    • notebook>=5.3
    • jupyterlab==0.34
  • JupyterLab Extensions

    • plotlywidget@0.3.0
    • @jupyter-widgets/jupyterlab-manager@0.37
    • @jupyterlab/plotly-extension@0.17

Added

  • plotly.js version 1.40.1, which introduces the following features:
  • Support for offline static image export with the to_image and write_image
    functions in the new plotly.io package (#1120).
    • Note: Image export requires the plotly orca
      command line utility and the psutil Python package.
  • New documentation sections covering Static Image Export
    and Orca Management
  • Support for displaying FigureWidget instances in static contexts
    (e.g. nbviewer) just like the built-in ipywidgets
    (#1117)
  • Full integration of the Cividis colorscale (#883)
  • conda packaging
    • From here forward, new versions of plotly.py will be published to the plotly anaconda channel
      on the same day they are published to PyPI.
      (72ad0e4)
    • The README now includes conda installation instructions alongside the pip instructions.
    • In addition to the existing installation approaches, orca is now also available as a
      conda package from the plotly anaconda channel.

Updated

  • Show traces at the top of the Gantt chart's colorbar (#1110)
  • Significantly improved validation performance for numeric pandas Series objects (#1149)
  • Specialize auto-generated docstrings for Python syntax
  • More robust and specific logic for retrying requests to the plot.ly cloud service (#1146)
  • Support basic authentication when using the streaming API behind a proxy server (#1133)

Fixed

  • Validators for dash properties (e.g. scatter.line.dash) incorrectly rejected dash length lists (#1136)
  • Annotated heatmap error when custom colorscale was specified (#1151)
  • Incorrect deprecation warning for deprecated plotly.graph_objs.Annotations class (#1138)
  • Harmless JavaScript console error when opening an html file produced by plotly.offline.plot (#1152)
  • Incorrect validation errors when writing data to the streaming API (#1145)

v3.1.1

05 Sep 12:54
8e87a8c
Compare
Choose a tag to compare

[3.1.1] - 2018-08-10

This release is a minor bug-fix update to version 3.1.0

JupyterLab Versions

For use with JupyterLab, the following versions of the following packages
must be installed:

  • Python Packages

    • plotly==3.1.1
    • ipywidgets>=7.2
    • notebook>=5.3
    • jupyterlab==0.33
  • JupyterLab Extensions

    • plotlywidget@0.2.1
    • @jupyter-widgets/jupyterlab-manager@0.36
    • @jupyterlab/plotly-extension@0.16

Updated

  • Updated plotly.js to version 1.39.4.

Fixed

v3.1.0

05 Sep 12:52
Compare
Choose a tag to compare

[3.1.0] - 2018-07-20

JupyterLab Versions

For use with JupyterLab, the following versions of the following packages
must be installed. See README.md for instructions.

  • Python Packages

    • plotly==3.1.0
    • ipywidgets>=7.2
    • notebook>=5.3
    • jupyterlab==0.32.1
  • JupyterLab Extensions

    • plotlywidget@0.2.0
    • @jupyter-widgets/jupyterlab-manager@0.35
    • @jupyterlab/plotly-extension@0.16

Updated

Added

  • Added 3D streamtube traces
    plotly/plotly.js#2658
  • Added support for on-graph text in scattergl traces
  • Added gridshape attribute to polar subplots with values 'circular' (the default) and 'linear' (to draw polygon grids)
    plotly/plotly.js#2739