SSブログ

Open Flash Chart のデータURLにパラメータを渡すには? [NT]

ここ数日、Open Flash Chart に関連しているエントリが続いているが、今回も性懲りもなく同じ話題。

Open Flash Chart ver.1.9.7 では、Chart に表示するデータを flash の URL に続けてパラメータとして指定する仕様となっている。例えば、

open-flash-chart.swf?data=http%3A%2F%2Fteethgrinder.co.uk%2Fopen-flash-chart%2Fdata.php"

のように記述する。上記の場合、Chart に表示するデータは http://teethgrinder.co.uk/open-flash-chart/data.php から取得することを意味する。つまり、?data= 以降に URL を URLエンコードしたものを付与すれば良い。

では、URL にパラメータを渡した場合はどうするか?

答えは、単純に、パラメータも URL エンコードして渡せば良い。

例えば、
http://localhost:8080/smchart/ShowParam?id=p2iKnow&graphType=iknow
ならば、
http%3A%2F%2Flocalhost%3A8080%2Fsmchart%2FShowParam%3Fid%3Dp2iKnow%26graphType%3Diknow

とすると、 http://localhost:8080/smchart/ShowParam にはパラメータ id と graphType が付与される。

パラメータも URL エンコードしなければならないという、気付いてしまえば、当たり前すぎることに気がつかず、session を使うことで回避していた某サービス。コードを書き換えてパラメータで処理するように変更する予定。

ちなみに、Open Flash Chart を使って描画してみたグラフのスクリーンショットが次図(縮小している)。

image3.png

このグラフと、本ブログの過去のエントリを見た人は気がつくかもしれないが、smart.fm の進捗状況を「累積グラフ」で表したいんですよ。私は。smart.fm に機能を request しても accept されるとは限らないし、待つのはいやだし、API はあるし...ということで、自分で作ってしまった。

上記グラフのデータ生成部分は、Google App Engine の Java 版で動作することにも成功した。いわゆる GAE/J ってやつですな。6 ヶ月のデータならそれほど見にくくはならないが、2 年とか多いと見づらいので表示をもう少し改善してから公開する予定。現時点でも、とりあえずは動作しているのだが...


Open Flash Chart のバグ? [NT]

Open Flash Chart - Gallery - Y Axis - Legend によると、Open Flash Chart では Y 軸の凡例に Unicode (つまり日本語を含む)を正しく表示できない不具合がある。

Note Open Flash Chart has a known bug. The Y axis legend will not show unicode characters correctly. This seems to be a bug in flash its self.

上記によると、どうも Flash 自体の不具合らしい。たぶん、文字を回転した場合の問題だと思う。

この不具合は、業務目的でデザインにこだわる場合は、大きな問題だと思う。思いつく回避策としては、Open Flash Chart では背景画像を指定できるから、背景画像自体に Legend を書き込んでしまえば、回避できるかもしれない(未確認)。

ちなみに、私の場合は、Legend を英単語に変更して回避した。


グラフ数値軸のきりの良い目盛りを求めるには? [NT]

例えば、Microsoft Excel でグラフを描画すると、値の最大値が 54 の場合、 グラフの上限は 60 などのきりの良い数値になる。このきりの良い数値を求めるにはどうしたら良いだろうか?

調べて見たところ、次の 2 つが見つかったのでメモしておく。たぶん、Open Office Calc にも同様の機能があるので、そのコードを読んでも分かると思う。


Open Flash Chart の x_offset とは? [NT]

最近、Open Flash Chart を利用している。DL サイズの関係で最新版ではなく、古い Ver.1.9.7 を選んだ。

使っているときに、つまずいた箇所があるのでメモしておく。

Open Flash Chart には x_offset という設定値がある。これを利用すると、Y 軸をずらして表示することができる。 x_offset を true に設定してみたのが下図である。

image.png

これを見ると、データは 00:00 から描画され、Y 軸は 00:00 から少し左にずれて描画されることがわかる。もし、グラフの右端に 2 つめの Y 軸を表示させた場合にも、この機能は適用される。

では、データが増えた場合、x_offset はどうなるだろうか?実験してみたのが下図である。

image2.png

これを見ると、データが増えた場合、Y 軸と最初のデータまでの間隔が狭まることがわかる。実際に、Open Flash Chart のソースコードを簡単に眺めてみると、Box.as で offset を考慮した処理がなされているが、Y 軸と最初のデータまでの間隔は固定値ではなく、やはりデータの量によって変化するようだ。

ちょっと不便。というのは、200 件くらいのデータを表示させた場合、offset は見た目には分からないくらい小さくなってしまうからである。

見た目の問題であり、グラフそのものには問題は無いけれど、offset の量は指定できた方が便利だと思った。もっとも、どうしても変更したければ、ソースコードを書き換えてしまえば良いのだが...


Flash Chart/Graph ライブラリのサイズ [NT]

Flash で作成された Chart/Graph ライブラリの DL サイズのメモ。無償で使用するにはサイトへのリンクをしなければならないものを含む。

open flash chart ver. 1.9.7 はデータ形式が独特だが、サイズが軽いし GPL でソースコードもある。

XML/SWF Charts は swf 自体のサイズは小さいが、charts_library のサイズは大きい。ただし、charts_library は必ずしも読み込まれるわけでは無さそうだ。

AmCharts は swf は小さいがサンプルに付属していた設定用 XML が大きめだったので微妙。もっとも付属していた設定ファイルには大量のコメントが記述されていたので、削除すれば 20KB 位にはなりそうだ。

[Think IT] 第3回:ソーシャルサイトのWebデザイン (3/3) では smart.fm でも使用しているとされているし、評判も良さそうなので、使ってみようかなと思う。


タグ:Flash CHART

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。