1

JavaPlot の使用に関して私が見つけたすべての情報は、プロットを作成して Java コードレベルから実行する方法に関するものです。これは問題ありませんが、ユーザーが実行したときに、Jave の外部で必要な処理を実行するスクリプト ファイルが既にいくつか使用されています。これで、Gnuplot を開いてコマンドを入力できます

gnuplot> load "script.plt"

そして、私が持っているプロットの素晴らしい .png グラフィックを出力します。スクリプトでは、呼び出される行の 1 つが

plot "graphData.dat" title "Line Title"

ファイル「graphData.dat」には、グラフをプロットするために必要な座標情報が保存されています。

これは、ユーザーがフォルダー内の「script.plt」ファイルをダブルクリックすると正常に機能します (私は Windows 環境で実行しています)。これはかなり完璧です (gnuplot プロセスが適切に終了しないという事実を除いて、これは私が尋ねていることではありませんが、ベルが鳴る場合は、それを修正する方法も知りたいです)。

私が直面している問題は、Java 環境を介して gnuplot を介してスクリプトを実行できるようにする必要があることです。私のプログラムは、gnuplot を使用して .png グラフィックを自動的にエクスポートする必要があります。私はいくつか調べてみましたが、JavaPlot は Gnuplot の Java サポートに最適なライブラリのようですが、前述のロード コマンドを呼び出す gnuplot のインスタンスを実行するだけで、やりたいことができません。

私が得ることができる助けやアドバイスをいただければ幸いです.スクリプトファイルを放棄しようとしました.ロードコマンドを動的に呼び出しようとしました(しかし、明らかに正しい場所からではありません).datをプロットしようとしました.ファイルを直接、それは本当に好きではありません。そのスクリプトを実行できる限り、設定は完了です。

4

2 に答える 2

1

JavaGnuplotHybrid ライブラリーが必要です: 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:30:35.480 に答える
1

すぐに気付くことの 1 つは、gnuplot プロンプトからスクリプトをロードするだけです (つまり)

gnuplot> #We've already entered gnuplot from the commandline
gnuplot> load "script.plt"

コマンドラインでスクリプト名を最初の引数として gnuplot に渡すことと完全に同等です (つまり)

gnuplot script.plt

gnuplot -e 'load "script.plt"'これもコマンドラインからと同等です。パイプを介して gnuplot と通信する方法を理解する必要がなくなり、システムコールを発行する方法を理解するだけでよいため、これにより問題が単純化されますJava。でjava。でpython、できimport os; os.system("gnuplot script.plt")ました。

@andersoj が投稿したリンクの 2 番目、3 番目、4 番目の回答は、例とリンクを示していると思います。

于 2012-05-16T12:19:15.983 に答える