Y wave と X wave (XY wave, pair, scaling, setscale)
Y wave と X wave (XY wave, pair, scaling, setscale)
通常グラフを描くときには、y wave を縦軸に、x wave を横軸に選んで、メニューから新規グラフを作成するだろう。 実はこれは、Igor の Wave 本来の取り扱い方ではない。
もちろん複雑な waveセットは、上記のやり方でいいのだが、以下の例を見て欲しい。
横軸 x の値、0, 1, 2, 3, 4に対して、縦軸 y の値、1, 3, 5, 7, 9をプロットする場合には、
y 軸の wave だけ作成して、それだけをプロットすればよい事はご存じだろう。
具体的には、新規グラフの作成で、x 軸は、_calculated_を選べばよい。
これまでの lecture では、p と x を同じように扱ってきたが、実は意味が違うのだ。
p がデータ番号である事は以前に述べたとおりでこれは正しい。
それに対して x は、デフォルトでは p と同じだが、実は様々な値を割りあえることができるのだ。
make/D/O yy; yy=p^2
で テストwave を作成し、メニューから新しい表を作成してみよう。
通常なら、Edit data columns only のチェックが入っているはずだが、ここでは、Edit index and data columns をチェックしてから Do it ボタンを押そう。
そうすると、一つの wave なのに2列のデータが出現するはずだ。yyという wave のデータが、yy.d で、そのx座標がyy.xとして格納されているため、通常単に yyを_calculated_に対してプロットすると、横軸は0, 1, 2, 3, …となる。
■このx軸の値を変える命令が、setscale 命令だ。
コマンドラインで、
setscale/I x 10, 110, “”, yy
と入力してみよう。これは、yyという wave のx軸スケールを、10 から 110まで均等に割り当てるという命令だ。” ” の部分には、グラフに「単位」を書くことができるがここでは不要だ。各自、値の範囲をいろいろ変えて試してみよう。
■今回これについて解説したのには理由が二つある。一つ目は、積分や内挿オペレーションは、x wave と y wave のペアに対して指定するものではなく、x 軸の情報を持ったwaveに対して行う事だ。x data がデフォルトの0, 1, 2, 3…のまま積分計算を行うと予期せぬ結果が返されてしまう。そのためにも IGORでは、x 軸に正しいスケールをセットして、「x軸データを有する wave」 に対して種々の計算を行う必要がある。もう一つの理由は後に紹介する2次元画像データにおけるラベル付けだ。画像に目盛りを付ける場合に、正しい指数付けが必要だが、標準ではデータ数(ピクセル)で表示されてしまう。これを正しい距離やサイズに治すために、setscale命令が必要であると同時に、p と x の正しい理解が必要なのだ。