plotlib

plotlib is a generic data visualisation and plotting library for Rust. It is currently in the very early stages of development.

It can currently produce scatter plot and histograms, rendering them as either SVG or plain text.

The API is still very much in flux and is subject to change.

For example, code like:

.. code-block:: rust

extern crate plotlib;
use plotlib::scatter::Scatter;
use plotlib::scatter;
use plotlib::view::View;
use plotlib::plot::Plot;

fn main() {
    // Scatter plots expect a list of pairs
    let data1 = [(-3.0, 2.3), (-1.6, 5.3), (0.3, 0.7), (4.3, -1.4), (6.4, 4.3), (8.5, 3.7)];
    // We create our scatter plot from the data
    let s1 = Scatter::from_vec(&data1)
        .style(scatter::Style::new()
            .marker(scatter::Marker::Square) // setting the marker to be a square
            .colour("#DD3355")); // and a custom colour

    // We can plot multiple data sets in the same view
    let data2 = [(-1.4, 2.5), (7.2, -0.3)];
    let s2 = Scatter::from_vec(&data2)
        .style(scatter::Style::new() // uses the default marker
            .colour("#35C788")); // and a different colour

    // The 'view' describeswhat set of data is drawn
    let v = View::new()
        .add(&s1)
        .add(&s2)
        .x_range(-5., 10.)
        .y_range(-2., 6.);

    // A plot with a single view is then saved to an SVG file
    Plot::single(&v).save("scatter.svg");
}

will produce output like:

.. figure:: scatter.png