編集メニュー > 新規作成 編集 コピー 名前の変更 凍結 アップロード 添付ファイル一覧 バックアップ

mplot

fileversion2.8ダウンロード

学生実験用に簡単なプロッターをjavaで作ってみました。 mはメスバウアーのmです。
version2.xにアップデート。多少Javaに慣れたのでver1.xよりソースはだいぶましになっているはず。仕様としてはほぼ最終版か?

mplot.png

既知のバグ

機能

memo/program/Java/mplot/README

  • 数値データのプロット
    • 2つ以上のデータを重ねてプロットすることも可能(使わないのでver1.9までで終了)
    • Y軸だけlog/linear scaleの変更が可能
    • 2列のデータの場合はY軸のエラーはsqrt(Y)で計算されます。
    • 3列のデータを読み込ませたときは3列目がY軸のエラーとなります。
    • 10000行までの数値データに対応しています。(ちょっと改造すればもっと読めます)
    • #で始まる行はコメントとみなされます。
  • フィッティング
    • 一次関数(y=ax+b)
    • 1,2,6個のLorentzian+const.
    • フィティング結果のテキストをクリップボードにコピーできる
  • 数値データの解析
    • fold プロットを指定したchで折りたたんで足し合わせる
    • calibrate Ax+Bという関数で横軸を較正
  • 日本語のファイル名はOK
  • グラフを画像(PNG,EPS)として保存。EPSはver-1.6から

まだできなくてできたらよいなぁと思うこと

  • テキストエリアのウィンドウのサイズを変えてもテキストエリアのサイズはそのまま。 なのではみ出たりする。
  • プロットしたものはタブとかで切り替えられるようにしたい。画像を保存するときにいちいちプロットしなおさないといけないので。(ver2.0で対応)
  • グラフとテキストが別々のウィンドウになっているが、一緒にしたい。(ver2.0で対応)
  • 一度プロットしたものはタブかなんかですぐに見れるようにしたい。図の保存のときにもう一度フィットするとかがなくなる。(ver2.0で対応)
  • jarファイルを作っていちいちコマンドプロンプトが表示されないようにしたい。(ver2.2で対応)
  • インストール時にいくつかディレクトリを書き換える必要があって面倒。自動化したいが。。。
    •  今のところディレクトリがかいてあるのは
      • Makefile
      • Makefile.bat
      • Manifest.txt
      • src/Makefile
      • src/MplotFrame?.java
      • src/MplotFile?.java

うーんこれだけのファイルをインストールの度に書き換えるのはうっとおしい。基本的にはjfreechartとepsgraphicsとファイルopenのデフォルトの3つがあればよい。

インストール

java本体とjfreechartのインストール

  • java開発パッケージ(JDK)をここからダウンロード。 C:\\Program Files\Javaにインストールした。環境変数の設定が必要。
  • jfreechartをここからダウンロード。 jfreechartはグラフ作成のためのパッケージ。 開発時のバージョンは1.0.13でした。 これをC:\\Program Files\Java\jfreechart-1.0.13にインストール。
  • epsgraphics-1.2.jarをここ からゲット(ver-1.6から)。これをJavaの下におく。

mplotのコンパイル

mplotをダウンロードして、適当なところで解凍 cygwinを使ってコマンドラインで使用するときにはMakefileをて適当に編集してmake。 cygwinを使わない場合はMakefile.bat中のパスを適当に編集して実行。 その後MPlot.batのパスを適当に編集して実行すればOK。

  • ファイルを開くときのはじめのパス コンパイルする前にmplot\src\MFileIO.java中のdefaultpathを変更しておくとよい。 パスの書き方は
    String defaultpath="C:\\Documents and Settings\\kondo\\デスクトップ";
    のように\を2つ書く。

LocalizationBundle_ja.propertiesの追加

右クリックで出てくるpopupメニューでX、Y軸がDomain、Range axisとなっているが、わかりづらい。変更したい場合は以下を行う。

Localeは日本語になっているが、それに対応するpropertyファイルが存在しないので、defaultのLocalizationBundle?.propertiesになっている。よって日本語用にLocalizationBundle_ja.propertiesを追加し、それを変更する。

まずjfreechart本体のlib以下の

  • org/jfree/chart/LocalizationBundle?.properties
  • org/jfree/chart/edit/LocalizationBundle?.properties

をLocalizationBundle_ja.propertiesにコピーしてその中を以下のように変更。

Domain_Axis=X Axis
Range_Axis=Y Axis

これだけでは反映されない。jfreechart-1.0.13.jarに追加する必要がある。 コマンドプロンプトで、以下を実行。

cd C:\Program Files\Java\jfreechart-1.0.13\lib
copy jfreechart-1.0.13.jar jfreechart-1.0.13.jar.org
cd ..\source
jar uvf ..\lib\jfreechart-1.0.13.jar org\jfree\chart\LocalizationBundle_ja.properites
jar uvf ..\lib\jfreechart-1.0.13.jar org\jfree\chart\editor\LocalizationBundle_ja.properites

これでOK。 本当は本体側をいじらずにやりたいのだけど、解決方法がわからん... jarはJREには入っていない。JDK(開発キット)が必要。入れた後は環境変数Pathを設定しないと上のようにはできません。マイコンピュータを右クリック->プロパティ->詳細設定->環境変数でJAVA_HOMEを新規作成し、PATHの末尾にbinディレクトリを追加する。