Which Library Should I Use for This Visualization?
flowchart TD
ROOT{What do I\nneed to show?}:::root
ROOT -->|Geographic data?| Q1{Is the data\ngeographic?}:::question
Q1 -->|Yes| LEAFLET[Leaflet\nInteractive map\nwith tile rendering]:::leaflet
ROOT -->|Interactive graph?| Q2{Should readers\nmanipulate nodes\nand edges?}:::question
Q2 -->|Yes| VISNET[vis-network\nInteractive\nnode-link diagram]:::visnet
ROOT -->|Read-only graph?| Q3{Read-only\ndiagram?}:::question
Q3 -->|Yes| MERMAID[Mermaid\nText-authored\ndiagram]:::mermaid_lib
ROOT -->|Set overlap?| Q4{Set intersection\npicture?}:::question
Q4 -->|Yes| VENN[Venn.js\nVenn and Euler\ndiagrams]:::venn
ROOT -->|Standard chart?| Q5{Standard 2D chart:\nbar, line, pie?}:::question
Q5 -->|Yes| CHARTJS[Chart.js\nLightweight\nstandard charts]:::chartjs
ROOT -->|Rich or 3D?| Q6{Higher-dimensional,\nhover-detail, or 3D?}:::question
Q6 -->|Yes| PLOTLY[Plotly\nRicher interactive\ncharting]:::plotly
ROOT -->|Bespoke?| Q7{Bespoke, generative,\nor custom-interactive?}:::question
Q7 -->|Yes| P5[p5.js\nCreative-coding\ncanvas]:::p5
classDef root fill:#333,stroke:#111,color:#fff
classDef question fill:#F5F5F5,stroke:#999,color:#333
classDef leaflet fill:#2E7D32,stroke:#1B5E20,color:#fff
classDef visnet fill:#1565C0,stroke:#0D47A1,color:#fff
classDef mermaid_lib fill:#4A90D9,stroke:#2C5F8A,color:#fff
classDef venn fill:#6A1B9A,stroke:#4A148C,color:#fff
classDef chartjs fill:#E65100,stroke:#BF360C,color:#fff
classDef plotly fill:#AD1457,stroke:#880E4F,color:#fff
classDef p5 fill:#F9A825,stroke:#F57F17,color:#333
Back to Documentation