4个版本

使用旧的Rust 2015

0.0.4 2016年12月16日
0.0.3 2016年12月14日
0.0.2 2016年12月13日
0.0.1 2016年12月13日

#239 in 可视化

Download history 81/week @ 2024-03-13 118/week @ 2024-03-20 204/week @ 2024-03-27 143/week @ 2024-04-03 99/week @ 2024-04-10 127/week @ 2024-04-17 82/week @ 2024-04-24 46/week @ 2024-05-01 65/week @ 2024-05-08 34/week @ 2024-05-15 47/week @ 2024-05-22 75/week @ 2024-05-29 54/week @ 2024-06-05 98/week @ 2024-06-12 170/week @ 2024-06-19 139/week @ 2024-06-26

468 每月下载量

MIT 许可证

55KB
605

rustplotlib docs.rs 构建状态

通过使用matplotlib创建2D图表的小型库。

本项目受到mneumann的matplotlib-rs和SiegeLord的RustGnuplot的启发。

警告

本项目目前正在开发中。这意味着API中可能会发生一些破坏性更改。

API文档的开发版本在此:这里

功能

  • 构建风格API
  • 支持多个后端

示例

extern crate rustplotlib;

use rustplotlib::Figure;

fn make_figure<'a>(x: &'a [f64], y1: &'a [f64], y2: &'a [f64]) -> Figure<'a> {
  use rustplotlib::{Axes2D, Scatter, Line2D, FillBetween};

  let ax1 = Axes2D::new()
    .add(Scatter::new(r"$y_1 = \sin(x)$")
      .data(x, y1)
      .marker("o"))
    .add(Line2D::new(r"$y_2 = \cos(x)$")
      .data(x, y2)
      .color("red")
      .marker("x")
      .linestyle("--")
      .linewidth(1.0))
    .xlabel("Time [sec]")
    .ylabel("Distance [mm]")
    .legend("lower right")
    .xlim(0.0, 8.0)
    .ylim(-2.0, 2.0);

  let ax2 = Axes2D::new()
    .add(FillBetween::new()
      .data(x, y1, y2)
      .interpolate(true))
    .xlim(0.0, 8.0)
    .ylim(-1.5, 1.5);

  Figure::new()
    .subplots(2, 1, vec![Some(ax1), Some(ax2)])
}

fn main() {
  use std::f64::consts::PI;
  let x: Vec<f64> = (0..40).into_iter().map(|i| (i as f64) * 0.08 * PI).collect();
  let y1: Vec<f64> = x.iter().map(|x| x.sin()).collect();
  let y2: Vec<f64> = x.iter().map(|x| x.cos()).collect();

  let fig = make_figure(&x, &y1, &y2);

  use rustplotlib::Backend;
  use rustplotlib::backend::Matplotlib;
  let mut mpl = Matplotlib::new().unwrap();
  mpl.set_style("ggplot").unwrap();
  
  fig.apply(&mut mpl).unwrap();
  
  mpl.savefig("simple.png").unwrap();
  mpl.dump_pickle("simple.fig.pickle").unwrap();
  mpl.wait().unwrap();
}

example

详细信息请见examples/simple.rs

许可证

本软件根据MIT许可证发布。有关详细信息,请参阅LICENSE

无运行时依赖