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 可视化
468 每月下载量
55KB
605 行
rustplotlib
通过使用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();
}
详细信息请见examples/simple.rs。
许可证
本软件根据MIT许可证发布。有关详细信息,请参阅LICENSE。