# ANN: New interactive Plots.jl backend for large datasets

**URL:** https://discourse.julialang.org/t/ann-new-interactive-plots-jl-backend-for-large-datasets/1442
**Category:** Visualization
**Created:** [January 12, 2017, 5:23pm UTC](https://discourse.julialang.org/t/ann-new-interactive-plots-jl-backend-for-large-datasets/1442 "2017-01-12T17:23:11Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![MA\_Laforge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ma_laforge/32/385_2.png) [@MA\_Laforge](https://discourse.julialang.org/u/MA_Laforge)
#### Post date: [January 12, 2017, 5:23pm UTC](https://discourse.julialang.org/t/ann-new-interactive-plots-jl-backend-for-large-datasets/1442/1 "2017-01-12T17:23:11Z")

</div>

**About InspectDR.jl**

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

**Pros**

- 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).

**Cons**

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

**Mouse/Keybindings**

An integral part of the interactivity:

- Box-zoom: Right mouse button + drag
- Pan: Shift + left mouse button + drag
- Zoom out full: CTRL + f
- … (more at: [https://github.com/ma-laforge/InspectDR.jl#Bindings](https://github.com/ma-laforge/InspectDR.jl#Bindings))

**Optimized for functions of 1 argument:**

```julia
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=ω)`)

**Links**

- [https://github.com/tbreloff/Plots.jl](https://github.com/tbreloff/Plots.jl)
- [https://github.com/ma-laforge/InspectDR.jl](https://github.com/ma-laforge/InspectDR.jl)

---

<div class="post-metadata">

### Author: ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)
#### Post date: [January 12, 2017, 5:26pm UTC](https://discourse.julialang.org/t/ann-new-interactive-plots-jl-backend-for-large-datasets/1442/2 "2017-01-12T17:26:42Z")

</div>

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

[https://juliaplots.github.io/backends/](https://juliaplots.github.io/backends/)

---

<div class="post-metadata">

### Author: ![MA\_Laforge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ma_laforge/32/385_2.png) [@MA\_Laforge](https://discourse.julialang.org/u/MA_Laforge)
#### Post date: [January 12, 2017, 6:12pm UTC](https://discourse.julialang.org/t/ann-new-interactive-plots-jl-backend-for-large-datasets/1442/3 "2017-01-12T18:12:52Z")

</div>

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

> <https://github.com/JuliaPlots/PlotDocs.jl/pull/12>

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

---

<div class="post-metadata">

### Author: ![MA\_Laforge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ma_laforge/32/385_2.png) [@MA\_Laforge](https://discourse.julialang.org/u/MA_Laforge)
#### Post date: [January 12, 2017, 6:14pm UTC](https://discourse.julialang.org/t/ann-new-interactive-plots-jl-backend-for-large-datasets/1442/4 "2017-01-12T18:14:39Z")

</div>

## Sample Usage

```julia-auto
using Plots
inspectdr()

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

plot(x, y)

```

---

<div class="post-metadata">

### Author: ![dpsanders](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dpsanders/32/3573_2.png) [@dpsanders](https://discourse.julialang.org/u/dpsanders)
#### Post date: [January 12, 2017, 6:38pm UTC](https://discourse.julialang.org/t/ann-new-interactive-plots-jl-backend-for-large-datasets/1442/5 "2017-01-12T18:38:33Z")

</div>

Sounds nice. What does DR mean?

---

<div class="post-metadata">

### Author: ![tbreloff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tbreloff/32/68_2.png) [@tbreloff](https://discourse.julialang.org/u/tbreloff)
#### Post date: [January 12, 2017, 10:22pm UTC](https://discourse.julialang.org/t/ann-new-interactive-plots-jl-backend-for-large-datasets/1442/6 "2017-01-12T22:22:34Z")

</div>

> [@ChrisRackauckas](#):
>
> Sounds interesting. Will it be added to the backends page?
> 
> [https://juliaplots.github.io/backends/](https://juliaplots.github.io/backends/)

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.

---

<div class="post-metadata">

### Author: ![MA\_Laforge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ma_laforge/32/385_2.png) [@MA\_Laforge](https://discourse.julialang.org/u/MA_Laforge)
#### Post date: [January 13, 2017, 2:28am UTC](https://discourse.julialang.org/t/ann-new-interactive-plots-jl-backend-for-large-datasets/1442/7 "2017-01-13T02:28:52Z")

</div>

> @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”.

---

<div class="post-metadata">

### Author: ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)
#### Post date: [March 2, 2021, 1:22pm UTC](https://discourse.julialang.org/t/ann-new-interactive-plots-jl-backend-for-large-datasets/1442/8 "2021-03-02T13:22:42Z")

</div>

@MA_Laforge, just learned now about your great [InspectDR.jl](https://github.com/ma-laforge/InspectDR.jl) backend for Plots. It is so easy to use:

```julia
using Plots; inspectdr()

```

and it allows plotting hundreds of thousands of points and zoom them interactively, where most backends struggle!  
Thank you so much.
