グラフソフトには、グラフを簡単に、美しく描くだけでなく、同じデザインのグラフを描くための機能が、必ずといっていいほど搭載されています。グラフソフトによって、この機能は、レイアウト機能や、テンプレート機能と呼ばれています。もちろん、IGOR Pro にもありますよ。

▼ 複製コマンド、グラフマクロ、そして、スタイルマクロ

IGOR Pro には、いくつか同じデザインのグラフを描くための機能があります。

  1. 表示されているグラフとまったく同じグラフを複製する 複製/Duplicate コマンド
  2. 過去に作成されたグラフをそっくり再構成する グラフマクロ
  3. 存在するグラフを過去に作成されたグラフと同じデザインに変更する スタイルマクロ

この3つの違いを整理してみましょう。


▼ 複製/Duplicate コマンド

このメニューコマンドは、最前面のウィンドウを複製するコマンド(編集メニュー>ウィンドウの複製 Ctrl+D/Cmd-D)です。そのため、何かターゲットになるウィンドウが現時点で存在している必要があります。複製ですので、ウィンドウタイトルがちょっと違う以外は、まったく同じデータ、サイズ、デザインです。当然。

00.png

同じグラフを複製

同じグラフをたくさん複製するだけでは意味がありませんが、間接的な Undo コマンドとしては使い道がありそうです。つまり、ある程度作成したグラフウィンドウを複製して、細かい設定をやってみて検討し、気に入れば採用。気に入らなければウィンドウを閉じて、オリジナルのグラフウィンドウに戻るという操作。IGOR Pro は、非常に Undo 機能の弱いソフトですので、自衛手段としては便利です。

ちなみに、複製/Duplicate できるのは、グラフウィンドウだけでなく、テーブルウィンドウ、レイアウトウィンドウ、パネルウィンドウを最前面に表示していれば、複製可能です。


▼ グラフマクロ(ウィンドウマクロ)

既存のグラフを再構築/Recreation するためのマクロです。マクロを作成するためにオリジナルとなるグラフは必要ですが、マクロ実行時にはオリジナルのグラフは不要です。データ(ウェーブ)だけ存在していればOKです。

このマクロを作成するには、ウィンドウメニュー>ウィンドウコントロール(Ctrl+Y/Cmd-Y)を利用します。

01.png

「ウィンドウマクロを作成」のチェックボックスをチェックして実行ボタンをクリックすると、IGOR Pro が自動的にマクロを作成します。対応するコマンドは DoWindow/R です。

02.PNG

マクロを利用するには、ウィンドウメニュー>グラフマクロ>保存したマクロ名 を選択します。

03.png

作成したマクロの実体は、プロシージャウィンドウに保存されていますので、ウィンドウメニュー>プロシージャウィンドウ>プロシージャウィンドウ(Ctrl+M/Cmd-M) で、確認できます。

Window Graph1() : Graph
	PauseUpdate; Silent 1		// building window...
	Display /W=(21.75,50.75,195,227) waveY2 vs waveX
	AppendToGraph waveY1 vs waveX
	ModifyGraph margin(left)=23,margin(bottom)=23,margin(right)=9,width=141.732,height=141.732
	ModifyGraph mode(waveY2)=7,mode(waveY1)=4
	ModifyGraph marker(waveY1)=5
	ModifyGraph lSize(waveY1)=1.5
	ModifyGraph rgb(waveY2)=(0,39168,19712),rgb(waveY1)=(0,0,35584)
	ModifyGraph msize(waveY1)=3
	ModifyGraph hbFill(waveY2)=5
	ModifyGraph mrkStrokeRGB(waveY1)=(62976,0,8704)
	ModifyGraph tick=1
	ModifyGraph mirror=1
	ModifyGraph font="Verdana"
	ModifyGraph fSize=10
	ModifyGraph standoff=0
	ModifyGraph btLen=3
	SetAxis left 0,10
	SetAxis bottom 0,6
EndMacro

プロシージャウィンドを見るとわかりますが、ウィンドウマクロには、waveY1, waveY2 と随所にウェーブ名がばっちり書かれていますので、同じ名称のウェーブが存在しないと利用できません(※)。もし、マクロに書かれたウェーブが存在しないと、

04.PNG

となってしまいます。

(※)マクロを作成したときのカレントデータフォルダからの相対パスです。カレントデータフォルダを移動したときに、同じ相対パスでウェーブが参照できる場合は、問題ありません。

このマクロを作成できるのは、グラフ、テーブル、レイアウト、パネルの各ウィンドウです。ひっくるめて ウィンドウマクロ とも呼ばれます。対象となるウィンドウの種類といい挙動といい、おそらく、複製/Duplicate コマンドは、このウィンドウマクロを作って、使って、破棄するという操作をバックグラウンドで実行しているんじゃないかと思います。


▼ スタイルマクロ

今回の本命、スタイルマクロ。過去に作成したグラフのデザインだけを再利用するマクロです。このマクロはグラフウィンドウを新たに作成する機能はありません、デザインを変更するだけです。なので、グラフマクロ同様に、マクロを作成するためのオリジナルのグラフが必要なだけでなく、マクロを実行するときも何かターゲットとなるグラフが必要です。

このマクロを作成するには、グラフマクロ同様に ウィンドウコントロールコマンド(Ctrl+Y/Cmd-Y) を利用します。

02.PNG

「スタイルマクロを作成」のチェックボックスをチェックして実行ボタンをクリックすると、IGOR Pro が自動的にマクロを作成します。対応するコマンドは DoWindow/R/S です。

マクロを利用するには、ウィンドウメニュー>グラフマクロ>保存したマクロ名 を選択します。作成したマクロの実体は、グラフマクロ同様に、プロシージャウィンドウに保存されています。しかし、プロシージャウィンドを見るとわかりますが、スタイルマクロとウィンドウマクロには違いがあります。


Proc Graph1Style() : GraphStyle
	PauseUpdate; Silent 1		// modifying window...
	ModifyGraph/Z margin(left)=23,margin(bottom)=23,margin(right)=9,width=141.732,height=141.732
	ModifyGraph/Z mode[0]=7,mode[1]=4
	ModifyGraph/Z marker[1]=5
	ModifyGraph/Z lSize[1]=1.5
	ModifyGraph/Z rgb[0]=(0,39168,19712),rgb[1]=(0,0,35584)
	ModifyGraph/Z msize[1]=3
	ModifyGraph/Z hbFill[0]=5
	ModifyGraphZ mrkStrokeRGB[1]=(62976,0,8704)
	ModifyGraph/Z tick=1
	ModifyGraph/Z mirror=1
	ModifyGraph/Z font="Verdana"
	ModifyGraph/Z fSize=10
	ModifyGraph/Z standoff=0
	ModifyGraph/Z btLen=3
	SetAxis/Z left 0,10
	SetAxis/Z bottom 0,6
EndMacro

まず冒頭に、スタイルマクロには Display 操作関数がありません。この関数がないと、グラフウィンドウが作成されません。このことからも、スタイルマクロは既存のグラフに対してのみ有効であることがわかります。

//グラフマクロの Display 操作関数
Display /W=(21.75,50.75,195,227) waveY2 vs waveX

さらに、スタイルマクロには ウェーブ名が書かれていません。両者を比較するとわかりますが、グラフマクロでは mode(waveY2)=7 とウェーブ名が書かれている場所に、スタイルマクロでは mode=[0]=7 と数値が指定されています。

//グラフマクロ
ModifyGraph mode(waveY2)=7,mode(waveY1)=4

//スタイルマクロ
ModifyGraph/Z mode[0]=7,mode[1]=4

0 から始まるこの数値は、グラフ上のトレース順番に対応していますので、上記のマクロの場合、[0] の内容をグラフの1番目のトレースに、[1] の内容を2番目のトレースについてスタイルを適用します。

さて、グラフに3つ以上のトレースがあった場合には、特に指示がないだけですので問題はありません。グラフに1つしかトレースがない場合、[0] の内容は適用できますが、[1] の内容は適用できませんね。マクロのエラーになってしまいそうですが、実はエラーにはなりません。お気づきでしょうか、たくさんの /Z フラグ に。

/Z フラグは、多くの操作関数、あるいは関数に共通のフラグの一つで、実行時にエラーが生じても、エラーを生成しない(エラーメッセージを表示させない)という指定を行います。スタイルマクロはよくできていて、ターゲットのグラフウィンドウのトレースがマクロが想定するより少ない場合でも、エラーで止まることなく、最後まで実行/処理されるように全ての ModifyGraph 操作関数に /Z フラグが指定されています。


▼ スタイルマクロの制限事項

スタイルマクロは、ModifyGraphLabelSetAxis 操作関数の内容をだけを記録することができますが、上記の Display 操作関数のように、記録できない内容があります。たとえば、注釈(TextBox 操作関数)、タグ(Tag 操作関数)、凡例(Legend 操作関数)で描かれたものは記録されませんし、ドローオブジェクトで描かれた図形も記録されません。こういったものを記録したい場合には、スタイルマクロではなくグラフマクロを使う必要があります。グラフマクロで記録したものを、スタイルマクロに移植して、オリジナルのスタイルマクロを作っておくと便利でしょう。


▼ まとめ

同じデザインを使って、グラフを描くための方法をご紹介しました。 作成したマクロはプロシージャウィンドウに保存されますが、これは、あるエクスペリメントファイル内に保存されているもので、別のエクスペリメントファイルでは利用できません。気に入ったスタイルマクロをいつでも利用する方法には、こちらの記事をご覧ください。

この内容は、製品紹介セミナー: はじめての IGOR Pro でも触れています。ご興味のある方は、セミナーにもお越しください。

--
井上@技術部でした。

※この記事の内容は執筆者の個人的見解で、ヒューリンクスによる公式情報ではありません。[免責事項]

トラックバック

この記事へのトラックバックURL
http://blog.hulinks.co.jp/cgi/mt/mt-tb.cgi/492
内容に対しての関連性がみられないものは削除する場合があります

前回は、同じデザインのグラフを描くために必要なスタイルマクロをご紹介しました。今... 続きを読む

nfl gear - nfl gear on 2013/12/03 at 6:43 PM 

IGOR Pro/同じデザインのグラフを作成(Style Macro) - ヒューリンクス(HULINKS)ブログ 続きを読む

IGOR Pro/同じデザインのグラフを作成(Style Macro) - ヒューリンクス(HULINKS)ブログ 続きを読む

IGOR Pro/同じデザインのグラフを作成(Style Macro) - ヒューリンクス(HULINKS)ブログ 続きを読む

バッグ - バッグ on 2014/01/30 at 10:39 PM 

IGOR Pro/同じデザインのグラフを作成(Style Macro) - ヒューリンクス(HULINKS)ブログ 続きを読む

IGOR Pro/同じデザインのグラフを作成(Style Macro) - ヒューリンクス(HULINKS)ブログ 続きを読む

トリーバーチ - トリーバーチ on 2014/02/03 at 12:56 PM 

IGOR Pro/同じデザインのグラフを作成(Style Macro) - ヒューリンクス(HULINKS)ブログ 続きを読む

IGOR Pro/同じデザインのグラフを作成(Style Macro) - ヒューリンクス(HULINKS)ブログ 続きを読む

コメントの投稿

Emailアドレスは表示されません。は必須項目です。
ヒューリンクス取り扱い製品の内容や購入に関するお問い合わせはヒューリンクスサイト連絡先へお願いいたします。投稿前にその他の注意事項もご覧ください。

HULINKS サイトの新着情報