Rust生成CSV数据并使用Veusz绘制函数像
使用Rust
编写的程序由于是编译型的语言,其速度远超Python
等脚本程序,所以本文尝试使用Rust
编写一段\(f(x)=x^2\)在区间\((0,10)\)上的值,并将其保存在function_data.csv
文件中,以供veusz
调用,绘制函数图像。
编写Rust程序
建立项目: drawfunction
1
2cargo new drawfunction
cd drawfunction确保
Cargo.toml
文件中添加了必要的依赖项:1
2[dependencies]
csv = "1.1"编辑源码:
drawfunction/src/main.rs 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20use csv::Writer;
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
let mut wtr = Writer::from_path("function_data.csv")?;
// 写入CSV头部
wtr.write_record(&["x", "x_squared"])?;
// 生成数据并写入CSV
for x in 0..=100 { // 使用0到10之间的101个点
let x_val = (x as f64) / 10.0;
let y_val = x_val.powi(2);
wtr.write_record(&[x_val.to_string(), y_val.to_string()])?;
}
wtr.flush()?;
println!("CSV data has been written.");
Ok(())
}使用
cargo run
运行这个程序将会在当前目录下生成一个名为function_data.csv
的文件,其中包含了我们计算的数据。编译程序:
1
2cargo build --release
./drawfunction/target/release/montecarlo第1行为编译程序,第2行为运行这个程序. 可以明显的感觉到程序运行时,瞬间在当前目录下生成一个名为
function_data.csv
的文件,其中包含了我们计算的数据。
使用Veusz绘图
- 启动
veusz
: 打开Veusz应用程序。 - 导入数据:通过“数据->导入”菜单选项导入你用Rust生成的
function_data.csv
文件。 - 创建图表:
- 在
Veusz
中,选择Insert-->add Graph
以创建一个新的图形窗口。 - 在工具栏中选择
Plot points with lines and eorrbars
. - 选中上述组件,在
X data
中选择x
,Y data
中选择x_squared
.