2011-08-22

8 月連休の成果

年の会社の夏期休暇は 8/13 - 8/21 の 9 日間もあり、さらに 8/22 を有休にしてしまいました。5 月の連休で、重回帰分析のための ContourMap 実現に目処がついたので、次はアプリケーションとして利用するためのプラットフォーム作りに取り組もうと考えていました。ContourMap を作成するだけの単機能なアプリケーションではなく、基本的な統計解析をこなし、自分の趣味に合ったグラフを作成してくれるようなツール、加えて ContourMap を存分に活用できる実験計画法などのアドバンスな解析にも対応できるようにすることが目標です。

ともあれ、まずは簡単なグラフ、手始めにトレンドグラフを作成できるツールを作ることをこの夏期休暇の目標としました。しかし振り返ってみると、この目標はハードルが高かったように思います。なにがしかのグラフを作成するにはデータが必要になります。したがってスプレッドシート状のテーブルを用意したくなります。そうするとデータやグラフなど複数のウィンドウを扱うことになるので、汎用的な使用に耐えるベースとなる GUI を用意しておかなければなりません。

GUI の構成としては、MDI にするか、タブで切り替えるか、あれこれ悩み、結局両方とも利用することにしました。一式のデータセットに対して、ひとつの子ウィンドウを割り当て、その中でタブを切り替えてグラフや解析結果を表示する、という作りです。まともな仕様を決めずに試行錯誤を重ねてしまったため、この基本的なウィンドウ制御を作り込むのに、休みの大半を費やしてしまいました。休みの成果として、せめてグラフらしいものを表示したいと、最後の日曜日に突貫工事でトレンドグラフを表示できるようにしました。グラフを描画するプログラムを書くより、ウィンドウ制御のケアの方が、はるかに時間がかかっています。現状は以下のような出来です。

まずは、サンプルのデータを読み込んだ状態。今のところ CSV 形式のファイルしか読み込めません。


トレンドグラフを描画した状態。まだ未完成です。目盛の表示処理に時間をかけた割には、出来が今ひとつ。グラフタイトルや軸ラベルの表示がまだできていないし、グラフを編集するためのツールボックスが欲しい。グラフを画像出力できるようにする機能が最低限必要ですが、未対応です。簡単にコピペできるともっといいのですが…。


グラフに求める機能が多すぎて、納得できるレベルまで持っていくのには時間がかかりそうです。9 月の連休には、少し前進したいですね。公開できるようなレベルの完成度になるのはいつのことか、道のりは長い…。

ちなみに以下は Windows 上で実行した例です。Look & Feel はケアしていませんが、マルチプラットフォーム対応は必要条件です。