Ruby で rsruby を用いて種々のグラフを作成
R システムでの散布図,棒グラフ,円グラフ,度数分布ヒストグラム, Q-Q プロット,帯グラフを図解で説明する.
参考にした Web ページ: http://www.okada.jp.org/RWiki/?R%A4%CE%A5%B0%A5%E9%A5%D5%A5%A3%A5%C3%A5%AF%A5%B9%A5%D1%A5%E9%A5%E1%A1%BC%A5%BF (現存しない)
散布図(2つのベクトルから)
- x, y 値を指定しての散布図の作成
2 つのベクトル X = (X1, x2, ..., xn), Y = (y1, y2, ..., yn) から,(x1, y1), (x2, y2), ..., (xn, yn) を2次元の散布図として書く.
◆ Ubuntu の場合の実行手順例
export R_HOME=/usr/lib/R irb -Ku require 'rubygems' require 'rsruby' T = { "x"=>[1, 2, 3, 4, 5, 6, 7, 8], "y"=>[3, 3, 4, 4, 2, 3, 4, 5] } r = RSRuby::instance r.eval_R(<<-RCOMMAND) x <- matrix( c( #{T["x"].join(",")} ), 1, #{T["x"].size} ) y <- matrix( c( #{T["y"].join(",")} ), 1, #{T["y"].size} ) plot( x, y ) RCOMMAND
ベクトルのグラフ
棒グラフ(ベクトルから)
ベクトル V = (v1, v2, ..., vn), から,v1, v2, ..., vn の棒グラフを書く.
◆ Ubuntu の場合の実行手順例
export R_HOME=/usr/lib/R
irb -Ku
require 'rubygems'
require 'rsruby'
T = { "x"=>[1, 2, 3, 4, 5, 6, 7, 8], "y"=>[3, 3, 4, 4, 2, 3, 4, 5] }
r = RSRuby::instance
r.eval_R(<<-RCOMMAND)
y <- matrix( c( #{T["y"].join(",")} ), 1, #{T["y"].size} )
barplot( y )
RCOMMAND

ベクトル V = (v1, v2, ..., vn), から,v1, v2, ..., vn の横向きの棒グラフを書く.
◆ Ubuntu の場合の実行手順例
export R_HOME=/usr/lib/R
irb -Ku
require 'rubygems'
require 'rsruby'
T = { "x"=>[1, 2, 3, 4, 5, 6, 7, 8], "y"=>[3, 3, 4, 4, 2, 3, 4, 5] }
r = RSRuby::instance
r.eval_R(<<-RCOMMAND)
y <- matrix( c( #{T["y"].join(",")} ), 1, #{T["y"].size} )
barplot( y, horiz = TRUE )
RCOMMAND

円グラフ(ベクトルから)
ベクトル V = (v1, v2, ..., vn), から,v1, v2, ..., vn の円グラフを書く.
◆ Ubuntu の場合の実行手順例
export R_HOME=/usr/lib/R
irb -Ku
require 'rubygems'
require 'rsruby'
T = { "x"=>[1, 2, 3, 4, 5, 6, 7, 8], "y"=>[3, 3, 4, 4, 2, 3, 4, 5] }
r = RSRuby::instance
r.eval_R(<<-RCOMMAND)
y <- matrix( c( #{T["y"].join(",")} ), 1, #{T["y"].size} )
pie( y )
RCOMMAND

度数分布ヒストグラム(ベクトルから)
ベクトル V = (v1, v2, ..., vn), から,ベクトルの度数分布ヒストグラムを書く.
◆ Ubuntu の場合の実行手順例
export R_HOME=/usr/lib/R
irb -Ku
require 'rubygems'
require 'rsruby'
T = { "x"=>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "y"=>[11, 22, 33, 55, 23, 56, 34, 25, 57, 25] }
r = RSRuby::instance
r.eval_R(<<-RCOMMAND)
y <- matrix( c( #{T["y"].join(",")} ), 1, #{T["y"].size} )
hist( y )
RCOMMAND

Q-Q プロット(ベクトルから)
ベクトル V = (v1, v2, ..., vn), から,ベクトルの Q-Q plot を書く.
◆ Ubuntu の場合の実行手順例
export R_HOME=/usr/lib/R
irb -Ku
require 'rubygems'
require 'rsruby'
T = { "x"=>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "y"=>[11, 22, 33, 55, 23, 56, 34, 25, 57, 25] }
r = RSRuby::instance
r.eval_R(<<-RCOMMAND)
y <- matrix( c( #{T["y"].join(",")} ), 1, #{T["y"].size} )
qqnorm( y )
RCOMMAND

行列のグラフ
棒グラフや帯グラフ(行列から)
行列 M = (mij) (iは行番号, jは列番号) から, 各列を1つの棒とする棒グラフを書く(積み上げ棒グラフになる).
◆ Ubuntu の場合の実行手順例
export R_HOME=/usr/lib/R
irb -Ku
require 'rubygems'
require 'rsruby'
T = { "x"=>[10, 9, 11, 12], "y"=>[20, 22, 21, 19], "z"=>[15, 16, 18, 12] }
r = RSRuby::instance
r.eval_R(<<-RCOMMAND)
x <- matrix( c( #{T["x"].join(",")} ), 1, #{T["x"].size} )
y <- matrix( c( #{T["y"].join(",")} ), 1, #{T["y"].size} )
z <- matrix( c( #{T["z"].join(",")} ), 1, #{T["z"].size} )
barplot( rbind( x, y, z ) )
RCOMMAND

行列 M = (mij) (iは行番号, jは列番号) から, 各列を1つの棒とする横向きの棒グラフを書く(積み上げ棒グラフになる).
◆ Ubuntu の場合の実行手順例
export R_HOME=/usr/lib/R
irb -Ku
require 'rubygems'
require 'rsruby'
T = { "x"=>[10, 9, 11, 12], "y"=>[20, 22, 21, 19], "z"=>[15, 16, 18, 12] }
r = RSRuby::instance
r.eval_R(<<-RCOMMAND)
x <- matrix( c( #{T["x"].join(",")} ), 1, #{T["x"].size} )
y <- matrix( c( #{T["y"].join(",")} ), 1, #{T["y"].size} )
z <- matrix( c( #{T["z"].join(",")} ), 1, #{T["z"].size} )
barplot( rbind( x, y, z ), horiz = TRUE )
RCOMMAND

行列 M = (mij) (iは行番号, jは列番号) から, 各列ごとに1つの棒グラフを書く.
◆ Ubuntu の場合の実行手順例
export R_HOME=/usr/lib/R
irb -Ku
require 'rubygems'
require 'rsruby'
T = { "x"=>[10, 9, 11, 12], "y"=>[20, 22, 21, 19], "z"=>[15, 16, 18, 12] }
r = RSRuby::instance
r.eval_R(<<-RCOMMAND)
x <- matrix( c( #{T["x"].join(",")} ), 1, #{T["x"].size} )
y <- matrix( c( #{T["y"].join(",")} ), 1, #{T["y"].size} )
z <- matrix( c( #{T["z"].join(",")} ), 1, #{T["z"].size} )
barplot( rbind( x, y, z ), beside = TRUE )
RCOMMAND
