トップページ -> 情報工学,情報スキルの教材 -> Ruby による Web/データベース・プログラミング -> Ruby で rsruby を用いてグラフ作成するときの各種パラメータ
[サイトマップへ]  

Ruby で rsruby を用いてグラフ作成するときの各種パラメータ

この Web ページでは, R で 2 次元の散布図を作成する関数である plot() 関数を例として, 各種パラメータを図解で説明します

R でのグラフ作成では,各種パラメータを使って,グラフを細かく調整することができます.この Web ページでは, 点と折れ線の重ね合わせタイトル付けx,y値の範囲対数目盛りxy比グラフィックパラメータ (点の色や大きさや形,線の色やスタイルや太さ)を調整する手順を図解で示します.

参考 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


plot() 関数の実行例

まずは,plot() 関数を使い,x, y 値を指定しての散布図の作成を行います.

x 値を格納したベクトル,y 値を格納したベクトルを引数として plot() 関数を使うと,散布図が描かれます.

◆ 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


種々の散布図

  1. 折れ線

    ◆ 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, type="l" );
    RCOMMAND
    

  2. 点と折れ線(点と折れ線が重ならない)
    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, type="b" );
    RCOMMAND
    

  3. 折れ線(「点」があると思って,折れ線が「点」と重ならないように)
    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, type="c" );
    RCOMMAND
    

  4. 点と折れ線の重ね合わせ
    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, type="o" );
    RCOMMAND
    


タイトル付け

  1. メインタイトルとサブタイトル

    mainsub を使用. メインタイトルはグラフの上に,サブタイトルはグラフの下に書かれる.

    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, xlab="x軸のタイトル", sub="y軸のタイトル" )
    RCOMMAND
    

  2. x 軸のタイトルとy 軸のタイトル

    xlabylab を使用.

    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, xlab="x軸のタイトル", ylab="y軸のタイトル" )
    RCOMMAND
    

  3. タイトルとして数式を表示

    expression オブジェクトを使います.

    参考 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%BF%F4%BC%B0%A4%CE%A5%D7%A5%ED%A5%C3%A5%C8)

    export R_HOME=/usr/lib/R
    irb -Ku
    require 'rubygems'
    require 'rsruby'
    r = RSRuby::instance
    r.eval_R(<<-RCOMMAND)
        X <- seq(1, 5, length=100)
        Y <- exp(-.5 * log( X^2 ) )
        plot(X, Y, type="o", xlab="x", ylab=expression(e^{-frac(1,2) * {log[10](x)}^2}) )
    RCOMMAND
    

    
    


x,y値の範囲,対数目盛り,xy比

  1. x,y値の範囲
    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, xlim=c(0,10), ylim=c(0,6) )
    RCOMMAND
    

  2. x軸を対数目盛り
    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, log="x" )
    RCOMMAND
    

  3. y軸を対数目盛り
    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, log="y" )
    RCOMMAND
    

  4. x, y軸を対数目盛り
    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, log="xy" )
    RCOMMAND
    

  5. 補助線 (格子状)
    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, panel.first=grid(8,8) )
    RCOMMAND
    

  6. 補助線 (なめらかな折れ線)
    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, panel.first = lines(stats::lowess( x, y ), lty="dashed") )
    RCOMMAND
    

  7. xy比
    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, asp="0.4" )
    RCOMMAND
    


グラフィックパラメータ

  1. 点や線の色
    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, type="o", col="red" )
    RCOMMAND
    

  2. 点の四角形に変更

    参考 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%D7%A5%ED%A5%C3%A5%C8%C5%C0%A4%CE%BC%EF%CE%E0)

    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, type="o", pch = 0 )
    RCOMMAND
    

  3. 点の大きさ
    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, type="o", cex=4 )
    RCOMMAND
    

  4. 線のスタイル(破線)
    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, type="o", lty=2 )
    RCOMMAND
    

  5. 線のスタイル(点線)
    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, type="o", lty=3 )
    RCOMMAND
    

  6. 線のスタイル(破線)
    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, type="o", lty=5 )
    RCOMMAND
    

  7. 線のスタイル(破線)
    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, type="o", lty=5 )
    RCOMMAND
    

  8. 線の太さ
    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, type="o", lwd=4 )
    RCOMMAND
    


(参考)plot() 関数のヘルプ

Usage

plot(x, y, ...)

Arguments

See Also plot.default, plot.formula and other methods; points, lines, par.

(参考)plot.default() 関数のヘルプ

Usage

plot(x, y = NULL, type = "p",  xlim = NULL, ylim = NULL,
     log = "", main = NULL, sub = NULL, xlab = NULL, ylab = NULL,
     ann = par("ann"), axes = TRUE, frame.plot = axes,
     panel.first = NULL, panel.last = NULL, asp = NA, ...)

Arguments

Usage

Commonly used graphical parameters are:

References

See Also plot, plot.window, xy.coords.