Version Matrix

New Scala Plotting Library

2d Plotting Library for Scala (including scala-js)

Creates scatter, line, contour, raster, barplots and boxplots, histograms, density plots. Composite figure of multiple plots.

Renders to

Minimal dependencies (VectorGraphics2D for PDF output).

May use streams of data, and create plots from huge files to raster output.

Text labels may use any font accessible to the JVM or the browser.

Simple user interaction: panning and zooming.

See canvas/src/main/scala/org/nspl/test.scala for Html5 Canvas examples. See saddle/src/test/scala/plots/plots.test.scala for JVM examples.


  • JVM AWT backend: libraryDependencies += "io.github.pityka" %% "nspl-awt" % "0.0.???"
  • JVM SVG via scalatags: libraryDependencies += "io.github.pityka" %% "nspl-scalatags-jvm" % "0.0.???"
  • scala-js svg via scalatags: libraryDependencies += "io.github.pityka" %% "nspl-scalatags-js" % "0.0.???"
  • scala-js canvas via scalatags: libraryDependencies += "io.github.pityka" %% "nspl-canvas-js" % "0.0.???"

Version policy

nspl uses 'early-semver' versioning enforced with


See the excellent java graphing library: GRAL, which inspired the design of this library.

How to build the website

The website is built with hugo and the hugo-book theme.

The theme is a git submodule. It must be initialized.

git submodule update --init 

Create and serve the site with:

sbt docs/mdoc docs/unidoc && cd website && hugo