2016年1月8日金曜日

rJava : プログラミング(4) グラフ描画

rJavaでグラフを書いてみた。テストのため乱数を発生させてやってみる。
ちなみに乱数を発生させる方法は、rxxx(n) nは乱数の個数となる。xxxには正規分布ならnormとなり、rnorm(100)だと正規乱数100個生成される。
他の乱数発生は、http://cse.naro.affrc.go.jp/takezawa/r-tips/r/60.html を参照

まずRでやってみる。
$ R
> c <- br="" rnorm="">> summary(c)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max.
-3.22800 -0.73340 -0.02118 -0.04163  0.64810  3.35600
> png("hist01.png", 640, 480)
> hist(c)
> dev.off()
> q()

カレントディレクトリにhist01.pngが生成されるので、FTPで接続しダウンロードして確認する。




これをrJavaでやってみる。
$ vi JRITest06.java
import org.rosuda.JRI.REXP;
import org.rosuda.JRI.Rengine;

public class JRITest06 {

        public static void main(String[] args)
        {
                Rengine re = new Rengine( new String[]{"--no-save"}, false, null );

                re.eval("c<-rnorm br="">                REXP x = re.eval("summary(c)");
                System.out.println(x);
                double [] ary = x.asDoubleArray();
                for (int i = 0; i < ary.length; i++) {
                        System.out.println(ary[i]);
                }
                re.eval("png('hist02.png', 640, 480)");
                re.eval("hist(c)");
                re.eval("dev.off()");
                re.end();
        }
}

[notss_analysis@ip-10-0-0-217 rjava]$ vi JRITest06.java
[notss_analysis@ip-10-0-0-217 rjava]$ javac JRITest06.java
[notss_analysis@ip-10-0-0-217 rjava]$ java -Djava.library.path=/usr/lib64/R/library/rJava/jri/ JRITest06
[REAL* (-3.322, -0.6323, 0.01249, 0.02881, 0.6197, 4.142)]
-3.322
-0.6323
0.01249
0.02881
0.6197
4.142

FTPで接続してみると、カレントディレクトリにhist02.pngがある。ダウンロードして表示すると同じようにグラフができている。

rJavaでグラフが描けるようになった。次はデータベースから持ってきたデータに対し、グラフを描いてみる。

参考
http://stat.biopapyrus.net/graph/imagedevice.html
http://stat.biopapyrus.net/graph/hist.html

0 件のコメント:

コメントを投稿