これはなんの記事?
GRというグラフ描画ライブラリのRubyバインディングの記事です。
Rubyだってグラフを描きたいのです!
こんにちは。気がつくとRubyのコードをこちょこちょ書いているkojix2と申します。
Rubyでグラフを描きたいって思ったことはありませんか? もちろんRubyにもグラフを描くツールはいくつかあります。例えばNArrayの作者の田中さんが作っているnumo-gnuplot、Jupyter-labで動かすiruby-plotly, Ankaneファミリーのchartkick、かつて一世を風靡し作者が忽然と姿を消したNyaplot、フロントエンドを目指すcharty、daruと一緒に使うdaru-view。どれも良いツールではあるのですが、一長一短で私は満足できませんでした。
2019年の初め、rubyplotの開発が発表されました。これはRubyにふさわしいAPIをもつグラフ描出用ライブラリということで、非常に期待していました。しかし開発者のみなさん忙しくてなかなか時間が取れないみたいで、開発は停滞して完成しなそうな雰囲気が漂ってきました。思えばRubyにふさわしいグラフ描画のためのAPIを一から考えて実装するのは簡単にできる仕事ではなかったのだと思います。
ここ数ヶ月間、Ankaneさんが次々と機械学習のライブラリを発表されています。どうしてそんなことができるのかなと思って、プロジェクトの中身を観察してみると、ruby-ffiを利用していました。ffiを使えばC言語に詳しくなくてもバインディングを作成できるのではないかと思い、GR.rbの開発をはじめました。ネーミングは最初はffi-grだったのですが、文字が丸っこくて可愛いという理由でGR.rbを採用することにしました。
(GRではアニメーションの描出や、3Dの描出もできます! こういうのRubyではあんまり見ないでしょ?)