5

特にJavaはVMを介して実行されるため、これが可能かどうかはわかりませんが、Java内からgnuplotを呼び出すことはできますか? おそらく、Javaにターミナルを開いて入力させることができます

gnuplot
plot ...

等?

4

5 に答える 5

20

gnujavaplotを使用します。

于 2010-07-07T16:05:51.133 に答える
3

gnuplot がコマンドラインまたは標準入力からすべての入力を取得 (またはファイルから読み取り) し、その出力をファイルに書き込むことができる場合は、ProcessBuilder.

于 2010-07-07T16:02:34.450 に答える
1

JavaGnuplotHybrid ライブラリを使用します。

これは非常に軽量 (3 つのコア クラスのみ) であり、Java と Gnuplot を使用したハイブリッド プログラミングを可能にします。

  1. Java と Gnuplot によるハイブリッド プログラミング
  2. 非常に軽量 (わずか 3 つのコア クラス)
  3. Gnuplot コードでタグを使用して、関数を実行したり、Java でフィールドの値を取得したりします。
  4. Java での Gnuplot の同期実行と非同期実行の両方をサポートします。(同期: Java プログラムは、ポップされた Gnuplot ウィンドウを閉じるまで待機します。非同期: Java プログラムは待機しません。)
  5. Gnuplot のエラー/通常のテキスト出力を Java 端末にキャプチャする
  6. xml ファイルから Gnuplot コードを読み取る
  7. Gnuplot コード テンプレートをサポートします。

詳細については:

  1. プロジェクトページ: https://github.com/mleoking/JavaGnuplotHybrid
  2. 例: https://github.com/mleoking/JavaGnuplotHybrid/blob/master/javagnuplothybrid/doc/examples.md
于 2014-04-02T15:25:47.033 に答える
1

これは Debian で動作します:

String[] s = {"/usr/bin/gnuplot",
              "-e",
              "set term jpeg large size 800,600;set autoscale; set grid;set format y \"%0.f\";set output \"plot.jpg\";set xdata time;set timefmt \"%Y-%m-%d-%H:%M:%S\";set xlabel \"Dates\";set ylabel \"Data transferred (bytes)\";plot \""+x+"\" using 1:2 title \"Total:"+tot+"\" with linespoints;"
             };
try {
    Runtime rt = Runtime.getRuntime();
    Process proc = rt.exec(s);
    InputStream stdin = proc.getErrorStream();
    InputStreamReader isr = new InputStreamReader(stdin);
    BufferedReader br = new BufferedReader(isr);
    String line = null;
    while ((line = br.readLine()) != null)
        System.err.println("gnuplot:"+line);
    int exitVal = proc.waitFor();
    if (exitVal != 0)
        log("gnuplot Process exitValue: " + exitVal);
    proc.getInputStream().close();
    proc.getOutputStream().close();
    proc.getErrorStream().close();
} catch (Exception e) {
    System.err.println("Fail: " + e);
}
于 2011-05-10T21:19:55.723 に答える
0

「exec」コマンドを使用して、任意の外部アプリケーションを起動できます。

http://java.sun.com/javase/6/docs/api/java/lang/Runtime.html

いくつかの例については、このページを参照してください。 http://www.rgagnon.com/javadetails/java-0014.html

編集: ProcessBuilder を忘れていました。Michael Borgwardt の答えは、より堅牢なソリューションです。

于 2010-07-07T16:05:47.817 に答える