Releases: plotly/plotly.py
v3.6.0
[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
onscatterpolar
,scatterpolargl
,scatterternary
,barpolar
,choropleth
,scattergeo
, andscattermapbox
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
DataArray
s) 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 legacytitle*
properties (#1403) - Fix deprecation warnings on Python 3.7 and ipywidgets > 7.0 (#1417). Special thanks to @Juanlu001 for this contribution!
v3.5.0
[3.5.0] - 2019-01-04
Updated
- Updated Plotly.js to version 1.43.1. See the
plotly.js CHANGELOG
for more information.
Changed
- Plotly.js 1.43 converted
title
properties (e.g.layout.title
) from
strings into compound objects that contain the text as thetext
property
along with new title placement attributesx
,y
,xref
,yref
,xanchor
,
yanchor
andpad
. Plotly.py 3.5.0 follows the new schema, but still
supports specifyingtitle
as a string, in which case the string is assigned
to thetitle.text
property
(#1302) - Plotly.js 1.43 also moved existing
title*
properties
(e.g.layout.titlefont
) under thetitle
object (e.g.layout.title.font
).
Plotly.py 3.5.0 follows the new schema, but still
supports the legacytitle*
properties by mapping them to the corresponding
title.*
property
(#1302) - The
update
method ongraph_objs
now returns the updated object in order
to support chaining multiple update operations together
(#1379) - The
show_link
option has been set toFalse
by default in the offline
plot
andiplot
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
andstrip_style
Figure
methods in matplotlylib conversion logic
(#1128)
v3.4.2
[3.4.2] - 2018-11-23
Fixed
config
options are now supported when usingplotly.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
[3.4.1] - 2018-11-09
Updated
- Updated Plotly.js to version 1.42.5. See the
plotly.js CHANGELOG
for more information.
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 alist
that starts with alist
(#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 withmode='lines'
and
more than 100k points
(#1271) - Fixed responsive resizing error with
iplot
in the classic notebook
(#1263)
v3.4.0
[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 usingplotly.offline.iplot
andplotly.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 toplotly.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 stringinclude_plotlyjs
options
inplotly.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.
Ifoutput_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.
- When
- Added a new
color_threshold
argument to thecreate_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
andactivecolor
(plotly/plotly.js#3068,
plotly/plotly.js#3091) - Added
title
,titleposition
andtitlefont
attributes to pie traces
(plotly/plotly.js#2987) - Added
hoverlabel.split
attribute toohlc
andcandlestick
traces to
split hover labels into multiple pieces
(plotly/plotly.js#2959) - Added support for
line.shape
values'hv'
,'vh'
,'hvh'
and'vhv'
inscattergl
traces
(plotly/plotly.js#3087) - Added trace, node and link
hoverinfo
forsankey
traces
(#3096,
#3150) - Added per-sector
textfont
settings in pie traces
(#3130)
Changed
- Use new Plotly logo in "Produced with Plotly" modebar button
(plotly/plotly.js#3068)
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 ascatter.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 customrow_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 thanuuid.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
[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
andstackgaps
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
, andwrite_json
functions in the
plotly.io
package
(#1188) - Figures and graph objects now support
deepcopy
andpickle
operations
(#1191) - The location of the
"~/.plotly"
settings directory may now be customized
using thePLOTLY_DIR
environment variable
(#1195) - Added optional
scaleratio
argument to thecreate_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
withpkgutil.get_data
to
improve compatibility withcx_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
[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 theFigure
and
FigureWidget
constructors. By default,skip_invalid
isFalse
and invalid
figure properties will result in an exception (this is identical to the
previous behavior). Whenskip_invalid
is set toTrue
, 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 theFigure
andFigureWidget
classes. This method returns a representation of the figure as a nested
structure ofOrdererdDict
andlist
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
- Pandas
Series
andIndex
objects storingdatetime
values were
incorrectly cast to numeric arrays
(plotly/plotly.py#1160,
plotly/plotly.py#1163) - Numpy arrays with
uint64
datatype caused aFigureWidget
error,
and no figure was displayed
(plotly/plotly.py#1155,
plotly/plotly.py#1163)
v3.2.0
[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:
- Allow
contour
,contourcarpet
andhistogram2dcontour
to have corresponding legend items usingshowlegend
(plotly/plotly.js#2891,
plotly/plotly.js#2914) - Add scatterpolar and scatterpolargl attributes
r0
,dr
,theta0
anddtheta
(plotly/plotly.js#2895) - Add layout attributes
piecolorway
andextendpiecolors
for more control over pie colors
(plotly/plotly.js#2870) - Add
splom
attributedimensions[i].axis.type
to easily override axis type in splom-generated axes
(plotly/plotly.js#2899) - Add support for on-graph text in
scatterpolargl
traces
(plotly/plotly.js#2895) - See the plotly.js CHANGELOG
for bug fixes and more information.
- Allow
- Support for offline static image export with the
to_image
andwrite_image
functions in the newplotly.io
package (#1120). - 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.
- From here forward, new versions of plotly.py will be published to 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
[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.
- This is a bug-fix release of plotly.js
- See the plotly.js CHANGELOG for more information
Fixed
- Fixed error in validation of configkeys
plotly/plotly.js#1065 - Fixed error in presentation of named colorscales
plotly/plotly.js#1089 - Fixed numerical precision error when using
plotly.tools.make_subplots
to create figures with a large number of subplots
plotly/plotly.js#1091 - Fixed problem that prevented the use of the
.update
method to initialize
an array property (e.g.layout.shapes
)
plotly/plotly.js#1091 - Fixed
FigureWidget
problem causing scroll zoom on 3D plots to stutter
plotly/plotly.js#1094 - Fixed invalid
tickmode
property inmatplotlylib
plotly/plotly.js#1101
v3.1.0
[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
- Updated Plotly.js to version 1.39.2
- See highlights below
- See the plotly.js CHANGELOG for more information.
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