Plotly

Plotly is the analytical charting engine; Evil Charts is the product-UI treatment reference.

Routing Summary

Use Plotly when interaction, exploratory analysis, scientific chart types, Python notebooks, or a Dash application are central. Use Evil Charts when an existing React product primarily needs polished chart cards, legends, tooltips, and shadcn/Recharts visual treatments. The two can be design references for each other, but their implementation layers are different. Source: Plotly product site and Evil Charts docs, reviewed 2026-07-14

Selection Matrix

Need Prefer
Python analysis, notebooks, scientific visualization Plotly.py
Interactive browser charts with Plotly's trace/layout model Plotly.js
Full Python analytical application Plotly Dash
shadcn-style dashboard chart blocks in a React product Evil Charts / Recharts
Static editorial chart with strict custom art direction Evaluate a lower-level SVG/canvas or publication workflow first

Current Snapshot

As checked on 2026-07-14, plotly.js npm latest is 3.7.0, published 2026-07-03, and the MIT-licensed GitHub repository has roughly 18.3K stars. Plotly.py on PyPI is 6.9.0, published 2026-07-09, and its MIT-licensed repository has roughly 18.7K stars. Version the concrete JS or Python package in the consuming project; “Plotly” is a product family, not one dependency. Source: npm, PyPI, and GitHub APIs, checked 2026-07-14

Integration Rules

  • Choose the chart from the analytical question, not from a gallery screenshot.
  • Keep units, accessible labels, hover/focus behavior, and reduced-motion behavior explicit.
  • Separate data transforms from presentation configuration so the chart can be tested.
  • Test dense data and small screens; an interactive chart that only works at demo width is not production-ready.

Timeline

  • 2026-07-14 | Added beside Evil Charts with a clear analytical-engine versus product-treatment boundary and current package snapshots. Source: User request, 2026-07-14