ヘニョリータ
Wednesday, November 30, 2005
Saturday, November 19, 2005
グラフ作成CGIの作成を始める
グラフをプロットするCGIの作成を思い立ち、以下のページで改良しつつ運用しています。
http://www.crystal.rm.st/pacgi/graphedit.cgi
要件
・perlのみで動く
かならずしもサーバーにimage magickだの、GDだの、なんとかSQLだのPHPだのrubyだのがインストールされている保証がないので、少なくともperlで動くように作る。
・目盛りとか、余白とか勝手に計算する
データに応じて余白のサイズとか、グリッドの間隔とかを良きにはからってくれるようにする。
・使いやすくする
ブログなどの記事とグラフを絡めたコンテンツをつくりやすいように、グラフ作成が簡単に出来るようにする。
・javascriptとか使わない
興味はあるのですが、クライアント側と、サーバー側の両方で処理が入ると難しくなるので、ひとまずクライアントは何も行わない方向で。
いろんなブラウザで表示できたほうがいいし。
といったところでしょうか。変わるかもしれませんが。
プロットした図を表示させる方法は、gif2htmlを参考にさせてもらいました。
ソースコードは参照していませんが、出力データ形式はそのまま利用させてもらっています。
ゆくゆくはPNGあたりのグラフィック形式にでも対応させられればいいのですが、ひとまずこのまますすめます。
エンコーダが作れればかっこいいのですが、それはまた別プロジェクトで。
ブラウザによってはベクタデータを扱うことが出来るみたいですが、将来的にはグラフ以外のラスタデータを扱うかもしれないので、しばらくはベクタデータは保留で。
以下、今後の予定
・テキストモードがあるとおもしろいかも
テキストブラウザでも見られるモードがあるといいなぁ。
・Datalistのソート
編集機能が貧弱なので、データのリストをソートさせたり、少しはインターフェースを考えようかと。
・データ圧縮
やたらとメモリを食う可能性があります。多次元配列で1ピクセルごとメモリを使っているのですが、グラフのサイズを大きくするとサーバーに怒られることがあるみたいです。perlのメモリ管理を良く理解していないので、どうしたら小さく収まるかは調べつつ行いましょう。
・はてなグラフにある機能のまね
グラフの合成
関数グラフ evalは危険だな、と
y軸を逆に(x軸、y軸の方向が固定なのがいまいち)
積分グラフ
・グラフ設定ファイルにコメント欄を設ける
なにか備考が書けるとなにかと便利かと。
・グラフのキャッシュ
毎回計算してプロットデータを出すよりは、グラフデータをキャッシュしておいた方が当然よいですね。グラフの参照もしやすくなるし。
ただ、グラフの作成のオーバーヘッドよりも、グラフ自体の転送に時間がかかると思われるので、あんまり早くはならないかも。
・ソースの公開
そろそろソースを公開しようかと。それなりに動いているし。
そのまえにライセンスを決めなければ。というか免責の文章を作らねば。
・回帰直線の計算
今日思いついたネタ。1次の回帰直線ぐらいならすぐできるかもね。
R値とか表示するとうれしい?個人的にはいらないが。
