{"id":555,"library":"plotly","title":"Plotly","description":"Plotly is an interactive, open-source data visualization library for Python, built on top of the Plotly JavaScript library (plotly.js). It supports over 40 unique chart types, enabling users to create rich, interactive web-based visualizations that can be displayed in Jupyter notebooks, saved as standalone HTML files, or integrated into pure Python web applications using Dash. Currently at version 6.6.0, Plotly maintains an active development and release cadence.","status":"active","version":"6.6.0","language":"python","source_language":"en","source_url":"https://github.com/plotly/plotly.py","tags":["data visualization","interactive plots","plotting","graphing","charts","jupyter","dash","scientific visualization"],"install":[{"cmd":"pip install plotly","lang":"bash","label":"Basic Installation"},{"cmd":"pip install 'plotly[kaleido]' # For static image export\npip install plotly-geo # For extended geographic features","lang":"bash","label":"With Optional Dependencies"}],"dependencies":[{"reason":"Recommended for static image export (PNG, JPEG, SVG, PDF) of figures.","package":"kaleido","optional":true},{"reason":"Provides extended geographic shape files for certain choropleth maps and other geo-specific features.","package":"plotly-geo","optional":true},{"reason":"Commonly used for data preparation and input with Plotly Express functions.","package":"pandas","optional":true}],"imports":[{"wrong":"import plotly.express as px","symbol":"express","correct":"import plotly.express as px"}],"quickstart":{"code":"import plotly.express as px\n\n# Create a simple bar chart\nfig = px.bar(x=[\"A\", \"B\", \"C\"], y=[1, 3, 2], title=\"My First Plotly Chart\")\n\n# Display the figure (opens in browser/notebook)\nfig.show()","lang":"python","description":"This quickstart demonstrates creating a basic bar chart using `plotly.express`, the high-level API. The `fig.show()` method renders the interactive plot, typically in a browser or Jupyter environment."},"warnings":[{"fix":"Upgrade your Jupyter Notebook installation to version 7.0 or newer (e.g., `pip install --upgrade notebook`).","message":"Plotly.py 6.0 dropped support for Jupyter Notebook versions prior to 7.0. Users on older Jupyter versions will need to upgrade.","severity":"breaking","affected_versions":"6.0.0 and later"},{"fix":"Review code interacting directly with Pandas DataFrames if experiencing unexpected behavior or performance changes after upgrading. Consider adopting the dataframe interchange protocol for broader compatibility.","message":"Plotly.py 6.0 introduced a rewrite of dataframe performance using the Narwhals abstraction layer instead of solely relying on the Pandas API. While generally providing performance gains, this might subtly affect direct Pandas dataframe interactions for users upgrading from older versions.","severity":"breaking","affected_versions":"6.0.0 and later"},{"fix":"Consult the Plotly.js 3.0 changelog for replacement attributes or alternative trace types if using any of the removed features.","message":"Plotly.js 3.0 (which plotly.py 6.0 is built upon) removed support for several deprecated attributes (e.g., `titlefont`, `titleposition`, `titleside`, `titleoffset`) and specific trace types like `pointcloud` and `heatmapgl`.","severity":"breaking","affected_versions":"6.0.0 and later"},{"fix":"Install `kaleido` (`pip install -U kaleido`) for reliable static image export. Remove any reliance on `orca`.","message":"For static image export of Plotly figures (e.g., to PNG, JPEG, SVG, PDF), the `kaleido` package is the recommended engine since Plotly 4.9. The older `orca` command-line utility is now considered legacy and may have compatibility issues.","severity":"gotcha","affected_versions":"4.9.0 and later"},{"fix":"For most common plotting needs, start with `plotly.express`. Use `plotly.graph_objects` when `plotly.express` doesn't provide the necessary customization or for highly specialized plots (e.g., certain 3D trace types, complex subplots with different types).","message":"When creating figures, `plotly.express` automatically infers sensible defaults and is much more concise (5-100 times less code) than building figures directly with `plotly.graph_objects`. Using `go` requires explicit definition of traces and layout.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"search_vec":"'40':26 '6.6.0':64 'activ':68 'applic':58 'base':38 'built':14 'cadenc':72 'chart':28,79 'creat':33 'current':61 'dash':60,81 'data':9,73 'develop':69 'display':43 'enabl':30 'file':51 'graph':78 'html':50 'integr':53 'interact':5,35,75 'javascript':20 'jupyt':45,80 'librari':11,21 'maintain':66 'notebook':46 'open':7 'open-sourc':6 'plot':1,2,19,65,76,77 'plotly.js':22 'pure':55 'python':13,56 'releas':71 'rich':34 'save':47 'scientif':82 'sourc':8 'standalon':49 'support':24 'top':16 'type':29 'uniqu':27 'use':59 'user':31 'version':63 'visual':10,39,74,83 'web':37,57 'web-bas':36","created_at":"2026-03-28T15:18:40.709107+00:00","updated_at":"2026-04-16T18:03:56.496415+00:00","problems":{"verify_error":"Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\n  File \"/tmp/tmposip0j3q/venv/lib/python3.12/site-packages/plotly/express/__init__.py\", line 12, in <module>\n    raise ImportError(\nImportError: Plotly Express requires numpy to be installed. You can install numpy using pip wi"},"ecosystem":"pypi","meta_description":null,"install_score":80,"quickstart_score":0,"quickstart_tag":"stale","pypi_latest":"6.8.0","cli_name":"","cli_version":null,"type":"library","homepage":"https://plotly.com/python/","github":"https://github.com/plotly/plotly.py","docs":"https://plotly.com/python/","changelog":"https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md","pypi":"https://pypi.org/project/plotly/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["data","web-framework"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"import_fail","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-07-10","install_tag":"verified"}}