グラフを描くツール Daru::View
Rubyでグラフを表示するDaru::Viewというツールを使ってみた。Daru::Viewは2017年に始まった比較的新しいプロジェクト。Google ChartsやHighchartsを使用している。
インストール
2019年1月26日時点では、Daru, Daru::Viewともに、gemパッケージではなく、githubリポジトリから最新版をインストールする。少なくとも私の環境では、安定版のdaruでは正常に動作しない。ここではspecific_installを利用して、GitHubのリポジトリからインストールした。
gem install specific_install
gem install https://github.com/SciRuby/daru
gem install https://github.com/SciRuby/daru-view
そのまえにJupyter + IRuby環境がインストールされている必要がある。これは少々面倒だが、IRuby インストールガイドに詳しい方法が解説されている。
使ってみる
jupyter lab
もしくは jupyter notebook
とタイプしてJupyterを起動。
グラフを描くのに使用するライブラリ
- Google Charts
- Highcharts
- Nyaplot
ただしNyaplotはすでに開発が終了していると思われるので、新しく使い始めるのはすすめられない。
折れ線グラフ
1821–1934年のカナダの山猫の年間捕獲数のデータセットLynxを折れ線グラフで描出してみる。まずは山猫のデータセットを読み込んでDaru::DataFrameオブジェクトを作る。
require 'daru/view'
require 'rdatasets' # gem install rdatasets
lynx = Daru::DataFrame.from_rdatasets :datasets, :lynx
googlechartsを指定する。ほかに highchart などが指定できる。
# Google Charts を指定する
Daru::View.plotting_library = :googlecharts
グラフを描く。オプション無しで折れ線グラフになる。
chart = Daru::View::Plot.new(lynx)
chart.show_in_iruby
show_in_iruby
はつけず、IRuby側で判定するべきだと思うが、そうしない理由がなにかあるのかもしれない。
面グラフ
オプション type: :area を指定。
chart = Daru::View::Plot.new(lynx, type: :area)
chart.show_in_iruby
棒グラフ
オプション type: :bar を指定。
chart = Daru::View::Plot.new(lynx, type: :bar, height: 600)
chart.show_in_iruby
グラフの色を変更する
chart = Daru::View::Plot.new(lynx, type: :bar, height: 600, colors: ["Green"])
chart.show_in_iruby
colors: ["Green"] などとすると変更される。
タイトルや軸を入れる
chart = Daru::View::Plot.new(lynx,
type: :area,
title: "カナダの山猫の年間捕獲数",
hAxis: {title: "年"},
vAxis: {title: "頭数"},
colors: ["Orange"],
height: 360,
)
chart.show_in_iruby
バブルチャート
usarrests = RDatasets.load :datasets, :USArrests
chart = Daru::View::Plot.new(usarrests,
type: :bubble,
width: 700,
height: 700,
colors: ['yellow', 'red']
)
chart.show_in_iruby
散布図
cars = RDatasets.load :datasets, :cars
chart = Daru::View::Plot.new(cars,
type: :scatter,
width: 600,
height: 600
)
chart.show_in_iruby
(続く)