Bubble Chart
1
Add data
2
Map columns
3
Visualize
Add your data
Upload a CSV or Excel file with time-series data
📋 Required columns
· X axis — numeric (e.g. GDP per capita)
· Y axis — numeric (e.g. life expectancy)
· Entity — name (country, brand…)
· Time — year or date (animation frames)
Optional: Size column, Color/Group column
Upload file
📂
Drop file here
CSV · Excel (.xlsx / .xls) — or click to browse

Upload a file to get started

Map columns
Tell the chart which column is which
Chart mode
🎬 Animated
📸 Static
Animated: requires Time column · each frame = one time value
Column mapping
Bubble size
40px
Row filters — narrow rows before charting

Select X, Y, Entity and Time columns to preview

Visualize
Style your animation and export
🎨
Style
🏷️
Labels
📐
Axes
🗂️
Legend
💾
Export
Theme
🌑 Dark
🩶 Dark gray
⬛ Black
☀️ Light
Color palette
Animation
700ms
400ms
700px
0.8
Time watermark
64
0.12
Dot labels
Left
Center
Right
X axis
Y axis
Tick & Grid
10
0.1
0.8
Position
Top right
Top left
Bottom right
Bottom left
Direction
Vertical
Horizontal
Style
10
5
Export
💡 Use the playback slider to select a frame before saving PNG.
Data Table
Raw data
Login
Sign Up
Welcome back
Sign in to save and export your charts
Forgot password?
// ── 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; }, };