2016-10-21 8 views
-1

file.csvからデータをインポートするr言語を使用してJavaでグラフをプロットしたいと思います。私の問題は私の出力は空白です。ネットビーンでは、プログラムの実行成功はエラーはないが、ガーフが表示されず、Rスタジオではグラフが正常に表示されます。R言語(read.csv(ファイル))を使用してJavaでグラフをプロットする方法

Rスタジオでこの私のコード:NetBeansで

//import file.csv 

RealDataErq <- read.csv("C:.../erq_csv_comma.csv",header = TRUE) 

//create garph by Request.By 

RealDataErq_RequesterBy <- aggregate(RealDataErq$NUMBER, by=list(Status=RealDataErq$Request.By), FUN=sum) 

//plot garph 

plot(RealDataErq_RequesterBy) 

この私のコード:

package rserveproject; 

import java.io.File; 
import java.io.IOException; 
import javax.swing.ImageIcon; 
import org.rosuda.REngine.REXP; 
import org.rosuda.REngine.Rserve.RConnection; 
import org.rosuda.REngine.Rserve.RserveException; 
import rcaller.RCaller; 
/** 
* 
*/ 
public class Graph2Erp { 
    public static void main(String a[]) throws IOException { 
     RConnection connection = null; 
     try {     
       RCaller caller = new RCaller(); 
       caller.setRscriptExecutable("C:\\\\Program Files\\\\R\\\\R-3.3.1\\\\bin\\\\i386\\\\Rscript"); 
       caller.cleanRCode(); 
       connection = new RConnection(); 
       REXP x; 
//    connection.eval("RealDataErq <- read.csv(file='C:\\\\Users\\\\.....\\\\Desktop\\\\erq_csv_comma.csv', sep=' ', colClasses=c(NA, NA, NA))"); 
       connection.eval("RealDataErq <- read.csv('C:\\\\Users\\\\.....\\\\Desktop\\\\erq_csv_comma.csv',header = TRUE)"); 
       connection.eval("RealDataErq_RequesterBy <- aggregate(RealDataErq$NUMBER, by=list(Status=RealDataErq$Request.By), FUN=sum)"); 
       File file = caller.startPlot(); 
       connection.eval("plot(RealDataErq_RequesterBy)"); 
       caller.endPlot(); 
       caller.runOnly(); 
       ImageIcon ii = caller.getPlot(file); 
       caller.showPlot(file); 

     } catch (RserveException e) { 
      e.printStackTrace(); 
     } 
     finally{ 
      connection.close(); 
     } 
    } 
} 

NetBeansでこの私の出力:

この私のファイル。 csv: https://drive.google.com/drive/folders/0B3ynuWBsKXoHY2tSQVdQZU4tVlE?usp=sharing

私はJavaGDを使用しません。別の解決策がありますか?

+0

Rスタジオで、この私の出力:https://i.stack.imgur.com/PjSzu.png –

答えて

1

私はすでに間違いを知っています。 "connection.eval"を "caller.addRCode"に変更します。

例:

package rserveproject; 

import java.io.File; 
import java.io.IOException; 
import javax.swing.ImageIcon; 
import org.rosuda.REngine.REXP; 
import org.rosuda.REngine.Rserve.RConnection; 
import org.rosuda.REngine.Rserve.RserveException; 
import rcaller.RCaller; 

public class Graph2Erp { 
public static void main(String a[]) throws IOException { 
    RConnection connection = null; 
    try {     
    RCaller caller = new RCaller(); 
    caller.setRscriptExecutable("C:\\Program Files\\R\\R-3.3.1\\bin\\i386\\Rscript"); 
    caller.cleanRCode(); 
    caller.addRCode("RealDataErq <- read.csv('C:/Users/...../Desktop/erq_csv_comma.csv',header = TRUE)"); 
    caller.addRCode("RealDataErq_RequesterBy <- aggregate(RealDataErq$NUMBER, by=list(Status=RealDataErq$Request.By), FUN=sum)"); 

    File file = caller.startPlot(); 
    caller.addRCode("plot(RealDataErq_RequesterBy)"); 
    caller.endPlot(); 
    caller.runOnly(); 
    ImageIcon ii = caller.getPlot(file); 
    caller.showPlot(file); 

    } catch (RserveException e) { 
     e.printStackTrace(); 
} 
    finally{ 
     connection.close(); 
    } 
} 

}

関連する問題