Thanks! It's an SVG image that is built with C2[1], a ClojureScript library that provides some handy tools for working with svg.
After the image is done rendering, there is a callback that draws a hidden tooltip next to each of the points. The callback also puts all of the points into a kd-tree for efficient nearest neighbor searches. When a mouse hovers over the graph, the point nearest the mouse tells its tooltip to display itself.
I've also seen a lot of people using HighCharts. You can probably get these out a lot faster than building one using a library like d3 or C2. You'll also get support for browsers that don't render svg for free. Here's a good example: https://coinbase.com/charts
It's true that it's a lot quicker to get started with HighCharts than d3, but you're left with almost infinitely less power. Plus, a high-level API for d3 now exists called
nvd3[1], which is more on the level of abstraction of a visualization framework like HighCharts (also, unlike HighCharts, it's free and open source under the Apache license).
But if you're interested learning a visualization framework that gives you the power to make literally any kind of data visualization you could imagine, and you feel at home doing intermediate to advanced programming in JavaScript and and are familiar with the svg spec(or willing to learn it), then d3 is an incredibly well-designed and flexible tool. It's one of only two software projects I've used in the past few years that makes me want to rave and carry on like this[2].