[ANN] SimplePlots.jl – Interactive Plots in 4 seconds or your money back

(edit: all times are from the precompiled packages)

julia> @time using SimplePlots
  9.855101 seconds (13.16 M allocations: 637.564 MiB, 3.74% gc time)

However, there is a huge difference between the REPL and Jupyter and I think this should be emphasised. SimplePlots takes only 1.8s when I load it in a Jupyter session (compared to up to 10 seconds in the REPL):

Btw. Here is Plots.jl (REPL):

julia> @time using Plots
 12.610763 seconds (17.64 M allocations: 954.746 MiB, 3.46% gc time)

and UnicodePlots (REPL of course):

julia> @time using UnicodePlots
  5.658824 seconds (4.97 M allocations: 242.752 MiB, 1.36% gc time)

…and my favourite: PGFPlotsX which has the most complete feature-set I know of (thanks to tikz and pgf):

julia> @time using PGFPlotsX (also REPL)
  2.549934 seconds (3.06 M allocations: 151.271 MiB, 2.06% gc time)

I don’t want to be too pessimistic, but I fear that adding more features will end up with the usual problems, however it seems that you only need some light wrappers around plotly.js so that might be very lightweight! Btw. if I would work on a daily basis with Plots.jl (as said, I work full-time with PGFPlotsX and it’s darn fast), I’d definitelly compile it into the system image, which means it can be loaded in less than a second, but this has other downsides too.

However, I would like to stress out that this comparison is kind of lacking a major thing: interactivity. So if you want to get an interactive plot within a few seconds, it’s definitely something! :slight_smile:

1 Like