Version History

For links to download each release, see the Downloads page.



New features:
  • Double click event can be captured and cancelled by plugins
  • setAnnotations's second parameter is now an optional boolean
  • Add `pixelRatio` option, which may allow improved performance on smaller screens by controlling the canvas' pixel ratio
  • X-axis label and tick logic can now operate at millisecond-level granularity
Bug fixes:
  • Repair a bug in "Custom interaction modals" demo
Internal refactors/fixes:
  • Fix various spelling mistakes
  • Fix a couple of type signatures in dygraph-externs.js


Breaking changes:
  • JS files were renamed to dygraph.js and dygraph.min.js.
  • There's now a dygraph.css file that you must include.
  • Dropped support for OldIE and other non-standard browsers. dygraphs works in IE11. I'm not sure about IE9 and IE10.
  • Double-click to unzoom zooms all the way out (and ignores valueRange).
  • Dropped old-style per-axis/per-series options.
New features:
  • Add a legendFormatter option
  • `this` is the Dygraph object in all callbacks
  • pass through (row, col) to valueFormatter
  • Option to not sync range in extras/synchronizer.js
  • Additional options for styling the range selector
  • getRowForX method
  • setVisibility can set the visibility of multiple series at once.
  • crosshair plugin extra
  • rebase/straw broom plugin
  • highlightSeriesBackgroundColor option
  • yAxisExtremes() method.
  • Passing strings in native format now throws. (Previously it kinda sorta worked.)
Bug fixes:
  • Selections are always cleared with animations
  • synchronizer calls previously-set callbacks
  • synchronizer only syncs when graphs are ready
  • Reset on synchronized graphs failed
  • fix to improve synchronizer performance
  • binary search bug fix in synchronizer
  • Fix range selection when chart is located inside fullscreen element
  • fillAlpha can be set per-series when fillGraph is set.
  • xRangePad was ignored on unzoom
  • Allow selected points where canvas-y coordinate is 0
  • Using valueRange with Logscale and yRangePad has unexpected results
  • With "drawGapEdgePoints", unwanted point often drawn at beginning of chart
Other user-visible changes:
  • “legend: follow” positioning changes
Internal refactors:
  • Code moved into a “src/“ directory
  • Tests use Mocha instead of jstd
  • dygraphs is split into ES6 modules and uses some ES6 features (e.g. arrows and destructuring).
  • dygraphs is built using babel & browserify
  • Code coverage is tracked continuously
  • Bundle size is now tracked continuously


  • Set this to the dygraph in all callbacks.
  • Minor bug fixes.


Highlights include:
  • dygraphs is now "retina" compatible.
  • Dramatically improved performance for filled charts (i.e. fillGraph)
  • More sensible date ticks: "Jan 08"→"Jan 2008", "29Jan"→"29 Jan"
  • Using a non-existent option now throws (w/ dygraph-combined-dev.js)
  • x-axis log scales
  • The labelsUTC option forces UTC formatting for all labels.
  • The new DataHandler system allows for more flexibility in data loading.
  • "this" is set to the dygraph in all callbacks.
  • dygraphs has shrunk, because we moved some stuff into "extras" (133kb→122kb)
This will be the last major release to support browsers without a native <canvas> implementation. See blog post for more details.


Minor bug fixes and updates to web site.


Initial Release. See blog post.