8 个版本
0.3.4 | 2020 年 10 月 30 日 |
---|---|
0.3.3 | 2020 年 10 月 23 日 |
0.3.1 | 2020 年 9 月 28 日 |
0.2.0 | 2020 年 9 月 26 日 |
0.1.1 | 2020 年 9 月 24 日 |
#248 in 可视化
52KB
1K SLoC
rt-graph
使用 Rust 编写的实时绘图实验。
许多其他绘图工具在添加新数据时不能有效地更新显示,例如,当只添加几个像素的新数据时,会重新绘制整个屏幕。
此包尝试在添加新数据时执行最小的增量工作以更新图表:绘制新数据中的少量像素,并使用高效的大块复制滚动图表,这可以通过 GPU 硬件加速。
由于这种设计,rt-graph 可以轻松处理每秒 30k 个新点,在 60 FPS 下使用,仅占用 3% 的 CPU(在 2016 年的联想 T460 笔记本电脑上测试,配备 2.4 GHz 英特尔酷睿 i5-6300U,运行 Ubuntu 18.04.5)。
源代码仓库: https://github.com/fluffysquirrels/rt-graph-rs/(欢迎提交问题和拉取请求!)
包: https://crates.io/crates/rt-graph
先决条件
首先安装 GTK 3 依赖项。
在 OS X 上使用 brew 尝试:brew install gtk+3
在 Ubuntu 上尝试:sudo apt-get install libgtk-3-dev
运行示例
从 https://github.com/fluffysquirrels/rt-graph-rs/ 克隆源代码仓库,然后尝试使用一些模拟数据运行示例
cargo run --package "example-simple" --release
您可以使用图表下方的滚动条来回滚动,或通过单击“跟随”按钮回到最新数据,并使用按钮进行缩放和缩小。单击图表将在其下方显示信息栏,其中包含您单击处的原始数据。
构建自己的应用程序
要使用自己的数据,实现 DataSource
特性,并在构建 Graph
或 GraphWithControls
时将您的结构体的实例传递给 ConfigBuilder::data_source()
方法。
rt-graph
使用 GTK(通过 gtk-rs Rust 绑定)用于其 UI,并设计为嵌入到应用程序中的任何 gtk::Container
中。
有用的链接
GTK 3 文档:https://developer.gnome.org/gtk3/stable/index.html
gtk-rs(Rust GTK 绑定)文档:https://gtk-rs.org/docs-src/
变更日志
0.3.4
- 交换 B 和 R 颜色通道,它们顺序相反。
0.3.3
- 为
Graph
添加.show
和.hide
方法。 - 隐藏的
Graph
跳变频率更低(1Hz),大大减少 CPU 使用率。 Graph::tick()
在没有从 DataSource 中摄取数据时执行较少的操作。
0.3.2
- 为
GraphWithControls
添加.show
和.hide
方法。
0.3.1
- 修复点击没有数据点的图形时的恐慌。
- 添加 NullDataSource。
0.3.0
- 翻转 y 轴,使增加的值在屏幕上更高。
- 将
Store
设为私有。 - 为所有公共项添加每个项目的文档。
- 将裸露的
u16
和u32
使用替换为类型别名Value
和Time
。
0.2.0
- 重构 Graph 和 GraphWithControls,以便消费者可以编写自己的控件。
0.1.1
- 在 README 中添加更多内容,包括屏幕截图。
依赖项
~18–28MB
~502K SLoC