2007年03月24日 (Sat)

Excelの散布図&折れ線グラフをIllustratorで再利用する方法(※解決)。

仕事柄Excelで大量の測定データを処理せねばならない事が多いのだが、Excel for Windowsのグラフ描画機能がお世辞にも綺麗とは言えない状態なので、WordやPowerPointへ貼り付ける際は専らIllustratorでの加工を余儀なくされていたってのはこないだも書いた話

しかし、毎度毎度こんなアホ臭いコトやってたら幾ら時間あっても足りないので、今日は自宅環境(←Macだけど)にて代替手段をあれこれと試してみる事に。

1. ExcelのセルデータをIllustratorのグラフエディタで読み込んで後加工

Illustratorのグラフエディタはタブ区切りテキストの読み込みに対応しているので、Excelから書き出したサンプルデータを読み込んで散布図にしてみる。
んで、グループ化を解除してからグラフ部分をダウンサンプリングしようとしたのだが…線繋がってねぇでやんの。つまり、コレってExcelのグラフシートを直接コピペしたのと大差無いってコトじゃん。全然意味ねェ…orz

2. Excelのグラフをコピペして、Illustrator上で何とかする

Excelで描いてもIllustratorで描いても折れ線グラフがバラバラになるってんなら、ExcelからコピペしてIllustrator上でエレメントを結合する方法を考えた方がよっぽど賢い。しかし、Illustratorのデフォルトで‘ばらんばらんのExcel折れ線グラフを全部結合する’みたいな都合のいい機能が搭載されている筈も無く、何とかスクリプトでクリア出来ないものかとあれこれ情報収集してみる。

→あった。

と言うのは、Illustrator関連のJavaScriptを多数公開されているSATO Hiroyuki様のサイト。ここで『適当に連結』というスクリプトが公開されているのだが、これこそまさにオイラがこの2週間探し求めていたものに他ならなかった。機能的には若干オーバースペック気味なのだが、ソースコード自体はそんなに長くないのでこのまま使ってみる。
早速Excelからコピーしたデータ(y=x^3の3000点プロットデータ)をIllustratorに落とし、データ曲線部分を選択してスクリプト実行。驚く程あっさりエレメントが結合され、その後パスを単純化したら3000個のアンカーポイントをたった3個のスムーズポイントで置き換える事に成功。(※これはある意味当然の話。ベジェ自体が3次曲線なのだから。)あいにくExcelからのコピペデータは座標値の精度に難が有り、Illustratorで直接プロットした場合と比べると線がガタ付く傾向にある。しかし単純化してしまう分には正直0.01mmにも満たない程度のガタ付きなんてどうでも良くて、元データがExcel処理されている以上直接コピペした方が絶対楽。
仕事で扱っているデータはノイズが乗りまくっている為、今回のケースのようにあっさり行くかどうかは定かでないがまぁ今までの方法よりどう考えても楽だし綺麗に仕上がるし、今後はこのスクリプトでザックザクExcelグラフを処理していく予定。つーか、Excelのグラフ描画って10万サンプルもあると流石に重過ぎるので、この機会に全部Illustratorでアウトライン化しておけば何かと便利そうなカンジ。

という事で、SATO Hiroyuki様にホント感謝、感謝でゴザイマス。
これでこの2週間悩まされ続けてきた問題がスパッと解決しそうデス☆☆☆

P.S
SATO氏のサイトには今回紹介した以外にも様々なサンプルスクリプトが公開されているのだが、色々漁ってみるとうわスゲーこんな事イラレで出来んの?!みたいな、とんでもないスクリプトばっか。
今回はExcelのグラフをIllustrator形式に変換するという言わばニッチな事例を紹介させて頂いたが、コレ全部使いこなせたら結構グラフィックデザインの幅も広がりそうだよなぁ…つーか自分でスクリプト書いてみたくなってきた!!

Copyright © 2007 Team Flame Magician, All rights reserved.