Javascript and a HTML5 canvas — I've written all the graphing code myself. I prefer to use stuff that other people have written, but I wanted flexibility, and not all graphing libraries handle tens of thousands of points well (and neither do SVGs).
Cool, well you got some nice looking graphs taking the path you did. I am working on an app that has graphing, and I am running into some of the problems you mentioned. I am using the highcharts library.
I haven't actually tried d3.js. I encountered significant speed issues when using Raphael (even when panning a graph), and I assumed that was more of an SVG problem than a Raphael problem. Maybe I shouldn't assume so much, but I didn't think d3.js would be suited to showing graphs with multiple data sets with potentially ten thousand points (or more, there's a data point for each second, and it's not uncommon to be riding for more than three hours) each.