Rustでplottersを使ってグラフのアニメーションを作る
今回は、以前からやりたいなぁと思っていた、Rustでのグラフのアニメーションが出来たのでその備忘を書き残します。
Pythonではmatplotlibで簡単に出来ますが、Rustではplottersというグラフ描画ライブラリを使用して実現しました。
以下がコードです。
// plotters = "0.3.1" use plotters::prelude::*; fn main() { let area = BitMapBackend::gif( "./animated.gif", // アニメーションファイルの名前。この名前で保存される (600, 400), // グラフのサイズ(幅x高さ) 100, // 1フレームの時間。単位は [ms] ) .unwrap() .into_drawing_area(); for i in 0..=50 { area.fill(&WHITE).unwrap(); let mut ctx = ChartBuilder::on(&area) .set_label_area_size(LabelAreaPosition::Left, 40) .set_label_area_size(LabelAreaPosition::Bottom, 40) .build_cartesian_2d(-0.0..5.0, -1.2..1.2) .unwrap(); ctx.configure_mesh().draw().unwrap(); // グラフに描画するデータを生成する let x_kps: Vec<_> = (0..=100).map(|x| x as f64 / 20.0).collect(); ctx.draw_series(LineSeries::new( x_kps.iter().map(|x| (*x, (x + i as f64).sin())), &RED, )) .unwrap(); // グラフを更新する area.present().unwrap(); } }
どんなグラフかは是非このコードを実行して確認してみてください。
説明もなく簡単ですが今回はここまでです。