ANN: New interactive Plots.jl backend for large datasets


About InspectDR.jl

Fast plotting with a responsive GUI (optional). Target: Quickly identify design/simulation issues & glitches in order to shorten design iterations.


  • Relatively short load times / time to first plot.
  • Interactive mouse/keybindings.
  • Fast & simple way to pan/zoom into data.
  • Designed with larger datasets in mind.
  • Responsive even with moderate (>200k points) datasets.
  • Confirmed to handle 2GB datsets with reasonable speed on older desktop running Windows 7 (Just don’t try to drag+pan the data area).


  • Mostly limited to 2D line/scatter plots.
  • No support for @layout or grid at the moment.


An integral part of the interactivity:

Optimized for functions of 1 argument:

y[i] = f(x[i]), where x[i] < x[i+1]

For example:

  • Time-domain data (y(x=time))
  • Frequency-domain data (y = X(x=ω))


Where is actual development in Plotting?
Fastest time-to-plot for Jupyter demos/tutorials (after precompilation, but from otherwise cold start)?
Where is actual development in Plotting?

Sounds interesting. Will it be added to the backends page?


Sounds interesting. Will it be added to the backends page?

Also: Currently on Plots.jl master, pending METADATA PR for v0.10.3.


Sample Usage

using Plots

#npts = div(1_000_000_000, sizeof(Float64)) #test: 1 GB of Float64
npts = 200_000
x = collect(linspace(0, 1e-6, npts))
y = sin(2pi*(x./T))

plot(x, y)


Sounds nice. What does DR mean?


I just merged and built the docs… it’s in there now.

The Plots 0.10.3 tag still hasn’t been merged into METADATA, so you’ll have to checkout master if you want this functionality soon.


@dpsanders: Sounds nice. What does DR mean?

The primary goal of the package is to investigate simulation results in an interactive fashion.

A secondary goal was to generate legible, pleasant-looking plots adequate for publications and “Design Reviews” (akin to code reviews).

To keep the name succinct (instead of going with InvestigateAndDesignReview), I chose “InspectDR”.