NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #447 most downloaded on PyPI
An open-source interactive data visualization library for Python
Last release 7 days ago
15 Sep 2026
Ships fairly regularly
a new release about every 5 weeks
Nearly every release is documented
notes for 59 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
13 years old
321 releases · first in 2013
See the full announcement at https://community.plotly.com/t/announcing-plotly-py-4-14-faceted-and-animated-images-and-heatmaps-inside-tick-labels-bett
See the full announcement at https://community.plotly.com/t/announcing-plotly-py-4-14-faceted-and-animated-images-and-heatmaps-inside-tick-labels-better-axis-type-detection/48079
plotly.graph_objects module. Notable changes include:
ticklabelposition attributeSee the full announcement at https://community.plotly.com/t/announcing-plotly-py-4-14-faceted-and-animated-images-and-heatmaps-inside-tick-labels-bett
See the full announcement at https://community.plotly.com/t/announcing-plotly-py-4-14-faceted-and-animated-images-and-heatmaps-inside-tick-labels-better-axis-type-detection/48079
px.imshow now supports facet_col and animation_frame arguments for visualizing 3-d and 4-d images 2746px.defaults now supports color_discrete_map, symbol_map, line_dash_map, labels and category_orders as well as a .reset() method 2957plotly.graph_objects module. Notable changes include:
ticklabelposition attribute to enable positioning tick labels inside the plotting areascaleanchor and matches on cartesian axes for matched square subplotsautotypenumbers attribute which is now set to strict in the default templatesautomargins for small figuresOne column per quarter.
See the fully release announcement at https://community.plotly.com/t/announcing-plotly-py-4-13-magical-error-messages-and-documentation-plus-speedups-
See the fully release announcement at https://community.plotly.com/t/announcing-plotly-py-4-13-magical-error-messages-and-documentation-plus-speedups-and-faceted-maps/47497
px.choropleth, px.scatter_geo and px.line_geo now support faceting as well as fitbounds and basemap_visible 2923px.scatter_geo and px.line_geo now support geojson/featureidkey input 2923px.scatter_geo now supports symbol 2923go.Figure now has a set_subplots method to set subplots on an already
existing figure. 2866Turbo colorscale and fancier swatch display functions
2882image_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).
2879selector argument to updater/selector functions now accepts ints and strs
2894px.scatter_geo support for text is fixed 2923x 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). 2761See the full release announcement at https://community.plotly.com/t/announcing-plotly-py-4-12-horizontal-and-vertical-lines-and-rectangles/46783
See the full release announcement at https://community.plotly.com/t/announcing-plotly-py-4-12-horizontal-and-vertical-lines-and-rectangles/46783
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)add_hline, add_vline, add_hrect, add_vrect functions, which also support the row="all" and col="all" arguments. (#2840)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)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)plotly.graph_objects module.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)add_hline, add_vline, add_hrect, add_vrect functions, which also support the row="all" and col="all" arguments. (#2840)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)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)some_fig.update_layout(geo_ltaxis_showgrid=True) shows Bad property path:\ngeo_ltaxis_showgrid\n ^ and lists the valid properties for geo.plotly.graph_objects module.See the full release announcement at https://community.plotly.com/t/announcing-plotly-py-4-12-horizontal-and-vertical-lines-and-rectangles/46783
See the full release announcement at https://community.plotly.com/t/announcing-plotly-py-4-12-horizontal-and-vertical-lines-and-rectangles/46783
plotly.graph_objects module.See the full announcement at https://community.plotly.com/t/announcing-plotly-py-4-10-date-axis-improvements-a-faster-px-imshow-and-full-figures-for-d
See the full announcement at https://community.plotly.com/t/announcing-plotly-py-4-10-date-axis-improvements-a-faster-px-imshow-and-full-figures-for-development/44685
plotly.io.full_figure_for_development() and plotly.graph_objects.Figure.full_figure_for_development() (#2737)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 (#2691px.imshow has a new constrast_rescaling argument in order to choose how
to set data values corresponding to the bounds of the color range
(#2691hover_data (#2749)FigureWidget (#2711) with thanks to @meffmaddfull_html() with html=False (#2469) with thanks to @tallamjrff.distplot() now only computes traces that will be shown (#2730) with thanks to @akbo.hist() works with latest version of Pandas (#2713) with thanks to @Kerybasplotly.io.full_figure_for_development() and plotly.graph_objects.Figure.full_figure_for_development() (#2737)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 (#2691px.imshow has a new contrast_rescaling argument in order to choose how
to set data values corresponding to the bounds of the color range
(#2691hover_data (#2749)FigureWidget (#2711) with thanks to @meffmaddfull_html() with html=False (#2469) with thanks to @tallamjrff.distplot() now only computes traces that will be shown (#2730) with thanks to @akbo.hist() works with latest version of Pandas (#2713) with thanks to @KerybasSee the full announcement at https://community.plotly.com/t/announcing-plotly-py-4-9-kaleido-for-static-image-export-hexbin-tile-maps-and-timelines/42
See the full announcement at https://community.plotly.com/t/announcing-plotly-py-4-9-kaleido-for-static-image-export-hexbin-tile-maps-and-timelines/42524
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).plotly.express.timeline() added as an official alternative to plotly.figure_factories.create_gantt() (#2626)create_hexbin_mapbox() added to Figure Factories, with thanks to @RenaudLN for the impressive contribution!facet_row_spacing and facet_col_spacing added to Plotly Express cartesian 2d functions (#2614)base added to Plotly Express bar and bar_polar functions (#2626)px.NO_COLOR constant to override wide-form color assignment in Plotly Express (#2614)scattergl when render_mode="webgl" in Plotly Express (#2614)"parent" was not accepted as part of path for px.sunburst() and px.treemap() (#2640)create_dendrogram() figure factory now works correctly with scipy 1.5.1 (#2627)imshow, to Pandas backend with kind option (#2541)plotly.express.imshow now uses data frame index and columns names and values to populate axis parameters by default (#2539)package-lock.json with many fewer security warnings (#2636)Nothing published for this version
Updated Plotly.js to version 1.54.5. See the plotly.js CHANGELOG for more information. This version includes various bug and security fixes.
See the full announcement at https://community.plotly.com/t/announcing-plotly-py-4-8-plotly-express-support-for-wide-and-mixed-form-data-plus-a-pandas-backend/40048
add_traces() now accepts bare int-like values for rows/cols as well as lists thereof (#2546), with thanks to @MCBoarder289 for the contribution!row/col now accept int-like values, not strictly int values (#2451), with thanks to @MCBoarder289 for the contribution!px.sunburst and px.treemap with path input (#2524)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).trendline argument more robust and made it work with datetime x values (#2554)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)range_(x|y) should not impact the unlinked range of marginal subplots (#2600)px.line now sets line_group=<variable> in wide mode by default (#2599)See the full announcement at https://community.plotly.com/t/announcing-plotly-py-4-8-plotly-express-support-for-wide-and-mixed-form-data-plus-a-pandas
See the full announcement at https://community.plotly.com/t/announcing-plotly-py-4-8-plotly-express-support-for-wide-and-mixed-form-data-plus-a-pandas-backend/40048
plotly.colors and plotly.express.colorsif 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…
See the full announcement at https://community.plotly.com/t/announcing-plotly-py-4-8-plotly-express-support-for-wide-and-mixed-form-data-plus-a-pandas-backend/40048
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)plotly.express.data: stocks, experiment, medals_wide and medals_long. (#2336)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.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):
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.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.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.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.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.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.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)px.Constant or px.Range objects in the place of column references so as to express constant or increasing integer values. (#2336)Fix AttributeError: module 'plotly.graph_objs' has no attribute 'FigureWidget' exception on from plotly.graph_objs import * when ipywidgets is not ins
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).TypeError: unhashable type: 'Template' during Figure construction when plotly.io.templates.default is set to a Template object rather than a string.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 possib
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 informatiom #2377.master branch of Plotly.js, which makes for faster QA and development cycles #2349. Thanks @zouhairm for this Pull Request!This version includes several performance improvements (#2368, #2403).
figure.layout.xaxis) are no longer created eagerly during graph object construction. Instead, they are created lazily the first time the property is accessed.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
layout.xaxis.rangebreakslayout.hovermode="x unified"), in which the hover box shows the information for all traces at a given x (or y) positionnode.customdata and link.customdata to sankey tracespx.imshow now accepts xarray inputs, with metadata being used for axis labels, hover and colorbar #2166The documentation of the API https://plot.ly/python-api-reference/ now documents the full API #2243
Removed development dependency on nose testing framework #2217
nose testing framework #2217Fix build errors in JupyterLab extension by pinning version of @types/plotly.js #2223
@types/plotly.js #2223Updated Plotly.js to version 1.52.2. See the plotly.js CHANGELOG for more information on bug fixes.
update_annotations, update_shapes and update_layout_images now no longer require the patch argument, as per the docstring #2167px.defaults no longer accepts arbitrary keys #2168pandas is not installed #2125path argument of px.sunburst/px.treemap and add values of color column in hoverlabel for px.sunburst/px.treemap #2133Updated Plotly.js to version 1.52.1. See the plotly.js CHANGELOG for more information on numerous new attribute and bug fixes.
legend.title attribute and so now has shorter trace names #2051px.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 #2102simple_white colorbar styling has been streamlined #2110jupyterlab-plotly and plotlywidget JupyterLab extensions should now share code when installed together, resulting in smaller JupyterLab vendor bundle sizes #2103category_orders are now respected independent of the contents of the data set #2084go.Scattergl symbols now accept numeric specification #1928px.scatter trendline coefficients are now more readable #1984px.sunburst and px.treemap now accept a path argument for passing
columns of a rectangular dataframe to build the charts #2006px.choropleth now accepts a user-supplied geojson attribute #2057px.choropleth and px.choropleth_mapbox now accept featureidkey to specify the GeoJSON field to use to match locations #2057px.choropleth and px.choropleth_mapbox now accept discrete color #2057px.bar_polar now accepts continuous color #2017layout.uniformtext attribute allows for automatic standardization of font sizes across bar-like and hierarchical traces. See the plotly.js CHANGELOG for more informationNothing published for this version
Fixed improper JSON encoding exception when the pillow module not installed #1993
pillow module not installed #1993Extended the plotly.express functional API with 7 new functions: px.pie, px.sunburst, px.treemap, px.funnel, and px.funnel_area (#1909) px.density_map
px.pie,
px.sunburst, px.treemap, px.funnel, and px.funnel_area (#1909) px.density_mapbox and
px.choropleth_mapbox #1937.center and mapbox_style #1937.scatter_polar, line_polar, bar_polar) now
have a range_theta keyword argument for representing only an angular
section #1969._r suffix that reverses their direction #1933plotly.express generated plots no longer have a default height of 600 pixels, instead they inherit the default height of regular figures #1990. To restore the old behavior, set px.defaults.height=600 once per session, or set the height keyword arguement to any px.function() to 600.zmin/zmax parameter in px.imshow for single-channel images #1981Updated Plotly.js to version 1.51.1. See the plotly.js CHANGELOG for more information
add_annotations/add_shapes/add_images methods to no longer default to adding objects in paper coordinates. This allows plotly.js to determine the default reference frame based on context (#1888)plotly.express.imshow convenience function to display images and heatmaps (#1855, #1885)simple_white template (#1864). Special thanks to @joelostblom for this contribution.facet_col_wrap argument (#1838)Fixed regression in 4.2.0 that caused all figure factories to require that scikit-image be installed
Updated Plotly.js to version 1.50.1. See the plotly.js CHANGELOG for more information
treemap trace type (plotly.js#4185, plotly.js#4219, plotly.js#4227, plotly.js#4242)add_*/select_*/for_each_*/update_* convenience figure methods for annotations, shapes, and images (#1817)overwrite kwarg to update* figure methods to fully replace property values, rather than update them recursively (#1726)texttemplate attribute to all traces that support on-graph text (plotly.js#4071, plotly.js#4179)hovertemplate and texttemplate e.g. '%{x|%b %-d, %Y}' (plotly.js#4071)bar trace length, width, on-graph text positioning, marker style and error bars (plotly.js#4180, plotly.js#4186)Updated Plotly.js to version 1.49.4. See the plotly.js CHANGELOG for more information
create_gantt figure factory now resizes responsively (#1724)graph_objects.indicator.Gauge has been renamed from stepss to stepsUpdated Plotly.js to version 1.49.1. See the plotly.js CHANGELOG for more information.
create_gantt figure factory may now be hidden by clicking on the legend (#1665). Special thanks to @csabaszan for this contribution!indicator traces (plotly/plotly.js#3978)choroplethmapbox traces (plotly/plotly.js#3988)densitymapbox traces (plotly/plotly.js#3993)style values: open-street-map, carto-positron, carto-darkmatter,
stamen-terrain, stamen-toner, stamen-watercolor and white-bg
that do not require a Mapbox access token (plotly/plotly.js#3987, plotly/plotly.js#4068)sourcetype value raster and image and type raster
for mapbox layout layers (plotly/plotly.js#4006)below attribute to scattermapbox traces (plotly/plotly.js#4058)below: 'traces' in mapbox layout layers (plotly/plotly.js#4058)sourceattribution attribute to mapbox layout layers (plotly/plotly.js#4069)labelangle and labelside attributes to parcoords traces (plotly/plotly.js#3966)doubleClickDelay config option (plotly/plotly.js#3991)showEditInChartStudio config option (plotly/plotly.js#4061)line_3d plotly express function was not visible by default when importing * from plotly.express (#1667)Nothing published for this version
Nothing published for this version
Nothing published for this version
This is a major release that includes many new features, and a few breaking changes. See the version 4 announcement for a summary of the important cha…
This is a major release that includes many new features, and a few breaking changes. See the version 4 announcement for a summary of the important changes.
plotly.express module (#1613)plotly.io.write_html and plotly.io.to_html functions for exporting figures to HTML (1474). Also available as .write_html and .to_html figure methods.update_layout, update_traces, update_xaxes, etc.) (#1624). See the new Creating and Updating Figures documentation page for more details.make_subplots (#1528)make_subplots (#1564)data property to the Figure constructor (#1614).pop method to graph object classes (#1614)jupyterlab-plotly JupyterLab extension for rendering figures in JupyterLab. Replaces the @jupyterlab/plotly-extension extension, and includes JupyterLab 1.0 support.plotly.colors module, and support for specifying this wide range of colorscales by name. Also added support for specifying colorscales as a list of colors, in which case the color spacing is assumed to be uniform (#1647).sphinx-gallery renderer for embedding plotly figures in Sphinx-Gallery (#1577, plotly/plotly-sphinx-gallery).chart-studio distribution package. The following modules have been moved to a new top-level chart_studio module:
plotly.plotly -> chart_studio.plotlyplotly.api -> chart_studio.apiplotly.dashboard_objs -> chart_studio.dashboard_objsplotly.grid_objs -> chart_studio.grid_objsplotly.presentation_objs -> chart_studio.presentation_objsplotly.widgets.GraphWidget class for displaying online figures hosted by Chart Studio as ipywidgets has been removed. Please use the offline, and much more capable, plotly.graph_objects.FigureWidget class instead.fileopt argument to chart_studio.plotly.plot has been removed, so in-place modifications to previously published figures are no longer supported, and a figure will always overwrite a figure with the same name.'plotly' template is used as the default theme across all figures.plotly distribution package, the bundled geographic shape files used by the create_choropleth figure factory have been moved to a new optional plotly-geo distribution package (1604)create_choropleth and create_gantt figure factories now always returns Figure objects, rather than dictionaries (#1600, #1607)..add_trace, .add_traces, .add_scatter, etc.) now return a reference to the calling figure, rather than the newly created trace (#1624)plotly.tools.make_subplots has been moved to plotly.subplots.make_subplots, though it is still available at the previous location for backward compatibilityplotly.graph_objs module has been moved to plotly.graph_objects, though it is still available at the previous location for backward compatibility (#1614)uid properties are only generated automatically when a trace is added to a FigureWidget. When a trace is added to a standard Figure graph object the input uid, if provided, is accepted as is (#1580).datetime objects that include timezones are not longer converted to UTC (#1581)layout.annotations) is updated with a list/tuple that is longer than the current value, the extra elements are appended to the end of the tuple.bar trace error bars in built-in templates (1656)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Updated Plotly.js to version 1.48.1. See the plotly.js CHANGELOG for more information.
bingroup to histogram, histogram2d and histogram2dcontour to group traces to have compatible auto-bin values (#3845)itemclick and itemdoubleclick attributes to set or disable the legend item click and double-click behavior (#3862)PlotlyJSONEncoder encoding error when simplejson is installed (#1556, #1561)validate=False option for all renderer types (#1576)Nothing published for this version
Updated Plotly.js to version 1.47.4. See the plotly.js CHANGELOG for more information.
select_traces, for_each_trace, and update_traces figure
methods for accessing and updating traces by subplot location and trace
properties
(#1534)select_*, for_each_*, and update_* figure methods for
accessing and updating subplot objects (xaxis, scene, polar, etc)
(#1548)plotly_unselect plotly.js event in a new
on_unselect trace method
(#1542). Thanks to
@denphi for this contribution!plasma for the plotly, plotly_white, and
plotly_dark templates for plotly.py version 4
(#1274,
#1549)plotly, plotly_white, and
plotly_dark templates for plotly.py version 4
(#1549)heatmap colorscales can be overridden
without specifying autocolorscale=False
(#1454,
#1549)UnboundLocalError error in the presence of a missing or corrupt
~/.plotly/.config file
(#1551)sankey traces with cartesian subplots
(#1527,
plotly/plotly.js#3802)Nothing published for this version
Updated Plotly.js to version 1.47.3. See the plotly.js CHANGELOG for more information.
layout.legend.itemsizing = 'constant' in built-in templates
that was made in 3.8.0. This resulted in unexpectedly large legend entries in
some common cases (#1526)Updated Plotly.js to version 1.47.1. See the plotly.js CHANGELOG for more information.
sunburst (plotly/plotly.js#3594), waterfall (plotly/plotly.js#3531), and volume (plotly/plotly.js#3488).plotly.io.to_html and plotly.io.write_html functions to export figures as html (#1474).animation_opts argument to plotly.offline.plot and plotly.offline.iplot to control the auto-play animation settings (#1503). Special thanks to @TakodaS for this contribution!.plotly settings directory (#1498). Special thanks to @pb-cdunn for this contribution!OSError when processing time series data using Python 3.7+ (#1402, #1501)Nothing published for this version
Fixed .update on numbered axis objects for Python < 3.6 (#1462, #1464)
Updated Plotly.js to version 1.45.2. See the plotly.js CHANGELOG for more information.
auto_play argument to offline plot and iplot to control
whether figures with frames are automatically animated when the figure is
loaded
(#1447)plotly.plotly.create_animations
(#1432)ternary_contour figure factory that was
added in 3.6.0. The new implementation uses the native plotly.js ternary axes
and provides ILR transform support.
(#1418)selectedpoints property of FigureWidget traces is
updated on the Python side in response to plotly.js selection events
(#1433)Nothing published for this version
Eliminated use of deprecated numpy.asscalar function
scipy an optional import for the ternary contour figure factory
(#1423)numpy.asscalar function
(#1428)Fix deprecation warnings on Python 3.7 and ipywidgets > 7.0 (#1417). Special thanks to @Juanlu001 for this contribution!
line.color colorbars for scatter3d traces (#1085, plotly/plotly.js#3384)hovertemplate on scatterpolar, scatterpolargl, scatterternary, barpolar, choropleth, scattergeo, and scattermapbox trace (plotly/plotly.js#3398, plotly/plotly.js#3436)<sup>, <sup>, <b>, <i> and <em> pseudo-html tags in extra (aka trace "name") hover labels (plotly/plotly.js#3443)DataArrays) to numpy arrays (#1393). Special thanks to @malmaud for this contribution!update method with legacy title* properties (#1403)Nothing published for this version
Updated Plotly.js to version 1.43.1. See the plotly.js CHANGELOG for more information.
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)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)update method on graph_objs now returns the updated object in order
to support chaining multiple update operations together
(#1379)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)layout.colorscale properties. Previously the colorscales were defined for
each trace type individually. This reduces the size of the resulting theme
files
(#1303)FigureWidget performance regression that, when working with
large datasets, resulted in a slight freeze of the widget after user
interactions (pan, zoom, etc)
(1305)ELECTRON_RUN_AS_NODE environment variable is set
(#1293)'responsive' config key was being silently blocked
(#1290)validate and strip_style Figure
methods in matplotlylib conversion logic
(#1128)Nothing published for this version
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-
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)plotly_domain values are now supported in FigureWidget in both
the classic notebook and JupyterLab (#1284)Updated Plotly.js to version 1.42.5. See the plotly.js CHANGELOG for more information.
Series or numpy array
(regression introduced in 3.4.0)
(#1257,
plotly/plotly.js#3211)args property of
layout.updatemenu.Button() when value is a list that starts with a list
(#1265)plotly.io.write_image to hang on Windows after
exporting more than ~25 images
(#1255)scattergl trace with mode='lines' and
more than 100k points
(#1271)iplot in the classic notebook
(#1263)Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →