Sankey Diagram
1
Add data
2
Configure
3
Visualize
Add your data
Upload a CSV / Excel file
Upload file
πŸ“‚
Drop file here
CSV Β· Excel (.xlsx / .xls)
Data format
πŸ”— source β†’ target
pairs + value
➑️ Chain (wide)
A→B→C→D columns
πŸ“‹ Required columns
Β· source β€” origin node name
Β· target β€” destination node name
Β· value β€” flow magnitude
Optional: time column for animation

Upload data to get started

Configure
Map columns and set up flow
Column mapping

Set columns to preview

Visualize
Style and export your Sankey
🎨
Style
πŸ”²
Nodes
🏷️
Labels
πŸ’Ύ
Export
Theme
πŸŒ‘ Dark
β˜€οΈ Light
⬛ Black
Color palette
Link style
0.45
Animation
900ms
500ms
700px
Node appearance
18px
14px
2
Link curvature
0.5
Alignment
Left
Right
Justify
Center
Node labels
12
Time watermark
15px
Export
πŸ’‘ Use the playback slider to select a frame before saving PNG.
Data Table
// ── DME gate object ──────────────────────────────────────────────────────────── window._dmeSession=null; window._dmeTier='free'; window.DME={ isLoggedIn:()=>!!window._dmeSession, isPro:()=>window._dmeTier==='pro', showLoginGate:()=>openModal(), showUpgradeGate:(msg)=>{ const m=document.createElement('div'); m.style.cssText='position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:10001;display:flex;align-items:center;justify-content:center'; m.innerHTML=`
⭐
Pro Feature
${msg||'This feature requires a Pro account.'}
`; m.addEventListener('click',e=>{if(e.target===m)m.remove();}); document.body.appendChild(m); }, requirePro:(fn,msg)=>{ if(window._dmeTier==='pro'){fn();} else if(!window._dmeSession){openModal();} else{window.DME.showUpgradeGate(msg);} }, checkRowLimit:(rows)=>{ if(window._dmeTier==='pro'||rows.length<=1000)return{ok:true}; return{ok:false,msg:`Your file has ${rows.length} rows. Free accounts are limited to 1,000 rows. Upgrade to Pro for unlimited rows.`}; }, addWatermark:(svg)=>{ const wm=document.createElementNS('http://www.w3.org/2000/svg','text'); wm.setAttribute('x','50%');wm.setAttribute('y','98%');wm.setAttribute('text-anchor','middle'); wm.setAttribute('fill','rgba(255,255,255,0.18)');wm.setAttribute('font-size','11');wm.setAttribute('font-family','Inter,sans-serif'); wm.textContent='DataMadEasy.com';svg.appendChild(wm);return wm; }, };