We're currently using Chart.js, which has a nice set of features and was quick to use, but it's not really built for our use case and it would be nice to have more flexibility. Here's a list of things that we should do which would be hacky / not possible with chart.js:
Show a legend item for each category and for each hang duration, (i.e., the number of legend items would be (num_categories + num_hang_durations) rather than (num_categories * num_hang_durations)
Persist the checked state of each legend item, and encode it in the URL, so users don't have to recheck everything they're interested in every time they visit the page.
Keep the height of the graph consistent when there are large numbers of legend items (i.e., don't shrink the graph when there are 20 legend items)
Add marker lines so we can show bug numbers for known regressions/fixes that show in the graph
Make a better mouseover-tooltip that shows each category for a given x-position
We're currently using Chart.js, which has a nice set of features and was quick to use, but it's not really built for our use case and it would be nice to have more flexibility. Here's a list of things that we should do which would be hacky / not possible with chart.js: