12月 1, 2011
kamata

イラストレータで株価チャート作成

鎌田です。ご無沙汰しております。
ここしばらく、Excelを入稿データとした案件が3つ程続いています。それをご紹介しようと思います。
今日ご紹介するのは、イラストレータでの株価チャート作成です。


株価チャート(ロウソク足)、移動平均線、売買高、信用取引残高です。

入稿データのExcelの値を拾って、イラストレータの座標値に変換してプロットしていきます。
座標値を計算して「グラフを書く」という点では難易度は高いものでははありません。
しかし、制作にあたって労したところは次の3点になります。

1. 「レイアウトが確定していない時点で設計を開始する」
 受注させていただいた時点では、グラフを書く領域のサイズが確定していません。
 サイズ変更に柔軟に対応できる必要があります。

2. 「株価の目盛単位は原則100円。10円未満の端数をださない。
   かつ、グラフ作成領域に合わせて、できるだけ大きくグラフを作成する」
 株価から最大値最小値は求められますが、それを3〜5分割して株価の目盛を作成します。
 そのときに、10円以下の端数を出してはならず、区切りのよい目盛にする必要があります。
 分割数、目盛の作成ルールはなく、これらについては全て制作側で決めないといけません。

3. 「信用取引残高は、白地と墨アミの二つの折れ線グラフを重ねるが…」
 墨アミのグラフを背後に、白地のグラフを前面に配置します。
 墨アミの数値が大きく、白地の数値が小さい場合、墨アミのグラフは表示されます。
 しかし、逆の場合は、白地の背後に墨アミありますので、墨アミのグラフが見えなくなります。
 この場合には、墨アミの折線グラフの「線部」のみを前面に表示し、アミを表示させません。

1について
 グラフ領域のサイズと原点の持ち方を工夫することで、対応できました。

2について
 これは大変苦労しました。分割数、目盛のルールはないので、グラフを作成してみての判断となります。
 日経会社情報が参考になりました。
 結局のところ、株価範囲が何円〜何円の場合、分割数幾つで、目盛幾つというテーブルを作成しました。
 グラフを作成させ、できるだけ大きいグラフとなるよう、値を調整していくことを繰り返しました。

3について
 このようなグラフを作成する場合どうしたら良いか?
 イラストレータの使い手に相談したところ「パスファインダー」を使用すれば良いことが分かりました。
 しかし、「パスファインダー」はスクリプトで制御できません。
 ネットでググっていくと、次の情報を見つけました。

“Can javascript execute pathfinder commands?”
http://forums.adobe.com/thread/433284

これに基づいてスクリプトを作成し、無事動作させることができました。

実際のスクリプトの動作はここをクリックして参照ください。

時間がかかっているのは、信用残高の読込み部分です。年52週の値を10年分、売買いでその2倍、約1000行を読込んでいるためです。株価、売買高は、12ヶ月の10年分、120行ですので、瞬間で終わります。

他のエクセル入稿の案件については、その制作が終わったタイミングで後日、紹介できればと思っています。
よろしくお願いします。

Leave a comment