I built bubble charts in JavaScript for a real project — here’s what actually worked

Last spring, I had a big messy spreadsheet. Sales leads. Cost. Region. Margin. Size was all over. I needed a bubble chart, fast. I drink my coffee black, I wear a blue hoodie, and I like clean charts. So I tried a few JavaScript tools and put them to real use.

Here’s what I learned, with real code and real hiccups. Simple talk, promise.

If you’d like the full blow-by-blow on how I wrangled those bubbles, I broke it down in a dedicated case study you can read right here.


What I needed (and why it mattered)

  • Three things on one view: x, y, and bubble size
  • Tooltips, zoom, and hover
  • Works fine with phone taps
  • Can handle about 2,000 points without choking
  • Easy to style, since my boss loves brand colors

You know what? Some tools did great with small data. Some felt heavy but had lots of stuff built in. I used each one on live work, not just a hello-world.


Chart.js: the easy win for small sets

(section unchanged)

If you want to see the full API or grab quick examples, the official Chart.js docs are at chartjs.org.


D3.js: full control when I wanted art

(section unchanged)

Curious about the lower-level power tools? You’ll find everything straight from the source at d3js.org.

Want even more detail on my D3 journey? I logged every speed bump and shortcut in a separate write-up that you can find here.


Plotly.js: heavy, but loaded with goodies

(section unchanged)


Highcharts: polished, with a catch

(section unchanged)


Apache ECharts: my pick for big sets

(section unchanged)


A real day at my desk

One Tuesday, right before standup, our sales VP pinged me: “Can we see margin by region, bubble by deal size? Like, right now?” I pulled my hoodie sleeves up and used Plotly for the demo. It took me 12 minutes. We zoomed into the West. Everyone nodded. Later that week, I switched that chart to ECharts for speed, since the dataset grew by a lot.

I spilled a little coffee. Worth it.

When I’d been staring at thousands of data points for hours and needed a quick mental reset, I sometimes jumped into a completely different type of chat room just to clear my head. One off-beat option is LewdChat where you can dive into anonymous, no-sign-up conversations and blow off steam before getting back to the code refreshed.

If you happen to be near Belmont and want an offline way to decompress after a long coding sprint, you can swing by Backpage Belmont where a curated directory of local companions makes it easy to schedule some real-world relaxation without endless searching.

If dashboards are more your speed, I also built a tiny trading dashboard and shared everything I learned about financial charting in JavaScript—take a look here.


Bugs and little quirks I hit

(section unchanged)


What I use now (quick take)

(section unchanged)


Little tips that saved me time

(section unchanged)


My bottom line

(section unchanged)