Plotly — Interactive Scientific Charts

The Python/R library for interactive figures — hover, zoom, and 3D that turn supplementary materials and dashboards into things reviewers actually explore.

Category Figures
Pricing Free
Rating ★★★★☆ (4/5)

Overview

Plotly renders charts as interactive HTML: hover for exact values, zoom into clusters, rotate 3D structures. For exploratory analysis, web supplements, and Dash dashboards it adds a dimension static matplotlib cannot — at the cost of print-oriented polish.

Why researchers use it

  • Interactivity for free — hover/zoom/pan on every chart by default
  • Plotly Express — one-liners for sophisticated statistical charts
  • Dash — turn analyses into shareable web apps without JavaScript

Getting started

  1. pip install plotly; px.scatter(df, x=…, y=…, color=…) renders instantly in notebooks.
  2. Export interactive HTML with fig.write_html() for supplementary materials.
  3. For static export (PNG/PDF): add kaleido — and expect to tune sizes for print.

The honest review

Strengths. The best default for data you want others to explore rather than merely view; Dash is the most researcher-accessible path to an interactive companion app for a paper.

Limitations. Static print output needs more fiddling than matplotlib to meet journal specs; HTML figures embed in HTML supplements, not PDFs; the free ecosystem shades into paid Dash Enterprise upsells.

When NOT to use this For classic print-journal figures under a strict visual identity, matplotlib with your house .mplstyle remains the reproducible standard — use Plotly where interaction adds information, not decoration.