#plot #gnuplot #data #script #plotter


Easy plotter and saver of simple data. Handy tool for development stage or small computational projects.

14 releases

0.5.2 Mar 6, 2024
0.5.1 Oct 29, 2023
0.4.1 Jul 19, 2021
0.3.5 Jan 7, 2021
0.1.1 Mar 24, 2020

#51 in Visualization

Download history 41/week @ 2024-02-26 126/week @ 2024-03-04 33/week @ 2024-03-11 36/week @ 2024-03-18 24/week @ 2024-04-01

99 downloads per month
Used in 2 crates




Download License Docs Crate

Easy plotter and saver of simple data. Handy tool for development stage or small computational projects. Save data, have a quick view and an initial gnuplot script to plot it.

If you are looking for a pure Rust plotter, check out plotters.


Do you have a costly process in Rust and want to save the data for postprocessing?

Would you like to still have a basic glance to check it and leave fine-tuning of the plot for later?

This is the crate for you!

Work flow

  1. Compute your thing in Rust
  2. Pass the results to a suitable struct from preexplorer, or use the preexplore method.
  3. Use the method plot or plot_later.

After cargo run, your data is saved and a suitable first script for gnuplot to plot the data is saved. If you used plot, you will get a plot by gnuplot that you can save.

The gnuplot script is located in


where my_identifier is the name you gave in rust to the plot.

Therefore, to run it in gnuplot (and get the plot again), run from the console

gnuplot target\\preexplorer\\plots\\my_identifier.gnu

  • Want a different plot? Change this file according to your needs and run again.

  • Want to use gnuplot as an interactive plotting engine? Run gnuplot in the console, copy and paste the script and keep going with your favorite gnuplot commands.

Main features

  • Easy plotting
  • Easy comparison
  • Implementable traits
  • Extensive documentation







For more, see the folder examples.


  • Download and install gnuplot, a command line engine for plotting. (Note that the gnuplot project has nothing to do with GNU).
  • Add preexplorer = "*" to your Cargo.toml file under [dependencies].
  • I suggest to simply go with use preexplorer::prelude::*; in your binary, and then use the short-name pre::... and the preexplore method directly in iterators and tuple of iterators.

Q & A

  1. When comparing processes (Process-related structs), why must they be the same structs? The comparison of processes (Processes-related structs) are a collection of processes. As such, it works as Vec<Process>, so two process structs must be the same type to be compared.
  2. Are there n-dimensional variants? No, it is out of scope. If you want to implement similar functionalities, you can do so easily based on the source code for Data.
  3. How to deactivate some options, e.g. tics? All structs implement the trait Configurable. Each option has documented how to disable it in its corresponding method.


There is no connection with the gnuplot project.


See Changelog.


For the reader

Has this project been useful to you? How? :) Let me know through a github issue!

Similar crates

  • debug_plotter
    • Convenient macro to quickly plot variables using pure Rust plotters crate


~89K SLoC