gnuplot rubyで円グラフを表示する
Ruby Gnuplotで円グラフをつくる
Gnuplot スクリプトでは円グラフを以下で生成する
円を出す場合のコマンドは
plot 原点x座標 , 原点y座標, 半径,扇型の始まる角度,扇型の終わる角度,色 with circles
と書く
set terminal png set output "./circle.png" set xrange [-15:15] set style fill transparent solid 0.9 noborder plot '-' using 1:2:3:4:5:6 with circles lc var 0 0 5 0 30 1 0 0 5 30 70 2 0 0 5 70 120 3 0 0 5 120 230 4 0 0 5 230 360 5
プロットするときのパターンのサークルを使って、
同じ原点と半径をもつ扇型をいくつもプロットしてひとつの円グラフに見せかけるということらしい
これと同じ内容をRuby Gnuplotで書き直すと以下になる
require "gnuplot" Gnuplot.open do |gp| Gnuplot::Plot.new( gp ) do |plot| plot.set "terminal 'png'" plot.set "output './circle.png'" plot.set "xrange [-15:15]" plot.set "style fill transparent solid 0.9 noborder" x = [0,0,0,0,0] y = [0,0,0,0,0] r = [5,5,5,5,5] angle1 = [0, 30,70, 120,230] angle2 = [30,70,120,230,360] color = [1,2,3,4,5] plot.data << Gnuplot::DataSet.new([x,y,r,angle1,angle2,color]) do |ds| ds.with = "circles" ds.using = "1:2:3:4:5:6" ds.linecolor = "var" end end end
あとは周りの枠とか軸とかをunsetすると円グラフだけが表示されて綺麗になる
gnuplotので開始角とかの計算をするのは不毛なのでRuby Gnuplotのほうがよさそう
usingがあんまりわかってないので、5系列なのに1から6まで書いてあるのはなんでなのかよくわかってない
参考にしたページ
http://www.gnuplot.info/docs_4.6/gnuplot-ja.pdf
https://github.com/rdp/ruby_gnuplot