Rust数据分析插件库re_dataframe_ui的使用:高效DataFrame操作与可视化工具
re_dataframe_ui
rerun
系列crate的一部分。
基于DataFusion的丰富表格小部件。
安装
在项目目录中运行以下Cargo命令:
cargo add re_dataframe_ui
或者在Cargo.toml中添加以下行:
re_dataframe_ui = "0.24.0"
使用示例
以下是一个基本的使用示例,展示如何使用re_dataframe_ui进行DataFrame操作和可视化:
use re_dataframe_ui::{DataFrameView, DataFrame};
use arrow::array::{ArrayRef, Int32Array, StringArray};
use arrow::record_batch::RecordBatch;
use arrow::datatypes::{DataType, Field, Schema};
fn main() {
// 创建示例数据
let schema = Schema::new(vec![
Field::new("id", DataType::Int32, false),
Field::new("name", DataType::Utf8, false),
]);
let id_array = Int32Array::from(vec![1, 2, 3, 4]);
let name_array = StringArray::from(vec!["Alice", "Bob", "Charlie", "David"]);
let batch = RecordBatch::try_new(
schema.clone(),
vec![Arc::new(id_array) as ArrayRef, Arc::new(name_array) as ArrayRef]
).unwrap();
// 创建DataFrame
let df = DataFrame::new(vec![batch]);
// 创建UI视图
let mut view = DataFrameView::new(df);
// 显示表格
view.show_table();
// 如果需要可视化
view.show_plot("id", "name").unwrap();
}
完整示例demo
以下是基于上述示例的完整demo,展示了更多功能和详细注释:
use std::sync::Arc;
use re_dataframe_ui::{DataFrameView, DataFrame};
use arrow::array::{ArrayRef, Int32Array, StringArray, Float64Array};
use arrow::record_batch::RecordBatch;
use arrow::datatypes::{DataType, Field, Schema};
fn main() -> Result<(), Box<dyn std::error::Error>> {
// 创建更复杂的schema
let schema = Schema::new(vec![
Field::new("id", DataType::Int32, false),
Field::new("name", DataType::Utf8, false),
Field::new("age", DataType::Int32, false),
Field::new("score", DataType::Float64, false),
]);
// 创建各列数据
let id_array = Int32Array::from(vec![1, 2, 3, 4, 5]);
let name_array = StringArray::from(vec!["Alice", "Bob", "Charlie", "David", "Eve"]);
let age_array = Int32Array::from(vec![25, 30, 35, 40, 45]);
let score_array = Float64Array::from(vec![85.5, 90.0, 78.5, 92.5, 88.0]);
// 创建RecordBatch
let batch = RecordBatch::try_new(
schema.clone(),
vec![
Arc::new(id_array) as ArrayRef,
Arc::new(name_array) as ArrayRef,
Arc::new(age_array) as ArrayRef,
Arc::new(score_array) as ArrayRef,
]
)?;
// 创建DataFrame
let df = DataFrame::new(vec![batch]);
// 创建UI视图
let mut view = DataFrameView::new(df);
// 显示表格
view.show_table();
// 显示多种可视化图表
// 1. 柱状图:年龄分布
view.show_plot("id", "age")?;
// 2. 折线图:分数趋势
view.show_plot("id", "score")?;
// 3. 散点图:年龄与分数关系
view.show_plot("age", "score")?;
// 可以添加更多数据操作和可视化逻辑
Ok(())
}
功能特性
- 基于DataFusion的丰富表格小部件
- 支持多类型数据可视化(柱状图、折线图、散点图等)
- 高效的数据操作能力
- 支持复杂数据类型
- 易于集成的API设计
许可证
MIT OR Apache-2.0
1 回复