トップページ -> 研究道具箱と教材 -> Ruby による Web/データベース・プログラミング -> Ruby で rsruby を用いて種々のグラフを作成
[サイトマップへ]  

Ruby で rsruby を用いて種々のグラフを作成

r の代表的なグラフを紹介します.

R での散布図,棒グラフ,円グラフ,度数分布ヒストグラム, Q-Q プロット,帯グラフを図解で説明します.

参考 Web ページ: R のグラフィックスパラメータの 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

グラフィックス参考実例集

R Graphical Manual


散布図(2つのベクトルから)


ベクトルのグラフ

棒グラフ(ベクトルから)

ベクトル 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 の円グラフを書く.

参考 Web ページ: グラフィックス参考実例集:パイチャート (http://www.okada.jp.org/RWiki/?%A5%B0%A5%E9%A5%D5%A5%A3%A5%C3%A5%AF%A5%B9%BB%B2%B9%CD%BC%C2%CE%E3%BD%B8%A1%A7%A5%D1%A5%A4%A5%C1%A5%E3%A1%BC%A5%C8)

◆ 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), から,ベクトルの度数分布ヒストグラムを書く.

参考 Web ページ: ヒストグラムと密度の推定 (http://www.okada.jp.org/RWiki/?%A5%D2%A5%B9%A5%C8%A5%B0%A5%E9%A5%E0%A4%C8%CC%A9%C5%D9%A4%CE%BF%E4%C4%EA)

◆ 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