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 |
#65 in Visualization
399 downloads per month
Used in 2 crates
330KB
5K
SLoC
preexplorer
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
.
Purpose
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
- Compute your thing in Rust
- Pass the results to a suitable struct from
preexplorer
, or use thepreexplore
method. - Use the method
plot
orplot_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
target\\preexplorer\\plots\\my_identifier.gnu
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
Gallery
Sequences
Processes
Densities
Heatmaps
Contour
For more, see the folder examples.
Installation
- Download and install gnuplot, a command line engine for plotting. (Note that the gnuplot project has nothing to do with GNU).
- Add
preexplorer = "*"
to yourCargo.toml
file under[dependencies]
. - I suggest to simply go with
use preexplorer::prelude::*;
in your binary, and then use the short-namepre::...
and thepreexplore
method directly in iterators and tuple of iterators.
Q & A
- 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 asVec<Process>
, so two process structs must be the same type to be compared. - 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
. - 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.
Disclaimer
There is no connection with the gnuplot project.
Changelog
See Changelog.
References
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
- Convenient macro to quickly plot variables using pure Rust
Dependencies
~4.5MB
~91K SLoC