6 个版本 (破坏性更新)

0.5.1 2020年3月28日
0.5.0 2020年3月14日
0.4.0 2019年3月2日
0.3.0 2018年3月1日
0.1.0 2017年3月9日

#86可视化

Download history 689/week @ 2023-11-23 507/week @ 2023-11-30 511/week @ 2023-12-07 565/week @ 2023-12-14 485/week @ 2023-12-21 517/week @ 2023-12-28 498/week @ 2024-01-04 784/week @ 2024-01-11 601/week @ 2024-01-18 585/week @ 2024-01-25 482/week @ 2024-02-01 632/week @ 2024-02-08 746/week @ 2024-02-15 555/week @ 2024-02-22 618/week @ 2024-02-29 572/week @ 2024-03-07

每月下载量 2,601
用于 15 crates

MIT 许可证

105KB
2.5K SLoC

plotlib

Rust codecov Crates.io MIT Documentation

plotlib 是一个用于Rust的通用数据可视化和绘图库。目前处于非常早期的开发阶段。

它目前可以生成

  • 直方图
  • 散点图
  • 从数据或函数定义生成的折线图
  • 箱线图
  • 柱状图

并以SVG或纯文本的形式呈现。

API仍在不断变化,可能会发生变化。

例如,以下代码

use plotlib::page::Page;
use plotlib::repr::Plot;
use plotlib::view::ContinuousView;
use plotlib::style::{PointMarker, PointStyle};

fn main() {
    // Scatter plots expect a list of pairs
    let data1 = vec![
        (-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: Plot = Plot::new(data1).point_style(
        PointStyle::new()
            .marker(PointMarker::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 = vec![(-1.4, 2.5), (7.2, -0.3)];
    let s2: Plot = Plot::new(data2).point_style(
        PointStyle::new() // uses the default marker
            .colour("#35C788"),
    ); // and a different colour

    // The 'view' describes what set of data is drawn
    let v = ContinuousView::new()
        .add(s1)
        .add(s2)
        .x_range(-5., 10.)
        .y_range(-2., 6.)
        .x_label("Some varying variable")
        .y_label("The response of something");

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

将生成如下输出

scatter plot

依赖关系

~145KB