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 在 可视化
每月下载量 2,601
用于 15 crates
105KB
2.5K SLoC
plotlib
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();
}
将生成如下输出
依赖关系
~145KB