統計解析向けR言語: EspressChartの連携でデータを簡単に可視化を実現 : JRI (Java R Interface) 事例


R言語は、オープンソースでフリーソフトウェアの統計解析向けプログラミング言語、及びその開発実行環境です。R言語は「ベクトル処理」と呼ばれる実行機構により、柔軟な処理を簡便な記法で実現します。

世界中のRユーザが開発した膨大なRプログラム(パッケージ)が「CRAN」として配布用の形式に保存されています。そのCRANパッケージ数の飛躍的な増大に見られるとおり、統計学を超えて学問分野や業界を問わず、金融工学・時系列分析・機械学習・データマイニング・バイオインフォマティクスなど、柔軟なデータ解析や視覚化そして知識共有の需要に応えうるR言語の普及は世界的に広がっています。

データのグラフ(チャート)・図解化機能はありますが、グラフ画像出力はシンプルなものしかありません。

●JavaとR言語のインターフェイス方法

Javaのようなハイレベルなアプリケーションは直接Rオブジェクトにアクセスできません。JRI (Java R Interface)というソフトを使用することでJavaからRオブジェクトへのアクセスが可能となります。これを使用してJRIクラスをjavaクラスにインポートします。

JRIインターフェイスを使用してラインチャートの描画方法(一部):

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import org.rosuda.JRI.Rengine;

public class LineChart{
public static void main(String[] args) throws IOException
{
//Set some labels for the plot
//Start R
Rengine r = new Rengine(args, false, null);
//Do some calcs and plot the chart but save as a png in the working folder
r.eval(“data(cars)”);
r.eval(“plot(cars, main = \”lowess(cars)\”)”);
r.eval(“lines(lowess(cars), col = 2)”);
r.eval(“lines(lowess(cars, f = 0.2), col = 3)”);
r.eval(“legend(5, 120, c(paste(\”f = \”, c(\”2/3\”, \”.2\”))), lty = 1, col = 2:3)”);
r.eval(“png(file=\”LineChart.png\”,width=800,height=600)”);
r.eval(“dev.off()”);

(以下省略)

図1

●EspressChartとR言語との融合

EspressChartは高度で、豊富なチャートを作成するためのAPIを提供します。一方R言語は統計分析用の機能構築を提供します。EspressChartはデータ分析にR言語を使用し、それを高度なチャートへ展開することが可能です。

パイ・チャートのサンプル・プログラム例:

import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import org.rosuda.JRI.REXP;
import org.rosuda.JRI.Rengine;

(中略)

QbChart.setEspressManagerUsed(false);
QbChart chart=new QbChart((Applet)null,QbChart.VIEW2D,IChartTypeConstants.PIE,data,false,colinfo,null);

(以下省略)

図2 EspressChartでのパイチャート出力

結論:
ユーザはR言語を使用することで統計分析、データマイニングに必要な機能をコーディング数を削減して可能とします。さらにEspressChartを活用することで、高品質・高機能なチャート(グラフ)を簡単にWebアプリケーションに展開することが可能となります。

関連するトピックス:

統計解析向けR言語: EspressChartの連携でデータを簡単に可視化を実現 : JRI (Java R Interface) 事例 への1件のフィードバック

  1. climb のコメント:

    データマイニングWebアプリケーションの実現:R言語, PL/R, EspressChartの融合について
    https://www.climb.co.jp/blog_espress/archives/1707

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください