今回は、IGOR Pro の軸の変換方法についてご紹介しましょう。
さて、まず問題です。華氏 F (Fahrenheit)を、摂氏 C (Celsius)に換算する次の式の □ にはどんな数字が入るかご存知ですか?

C = (F - 32)    (1)

▼ [おさらい] 温度換算

摂氏 C は、熱力学的温度(絶対温度) T から 273.15 K を引き算した温度ですね。1°C の幅は1K。一方華氏は、かつて寒剤によって実現できた一番冷たい温度を 0 °F、人の体温を 100 °F とする温度ですね。その間を100等分したので、1 °F は 1K ではありません。さてさて、冒頭の問題の答えは、

C = 5/9 (F - 32)     (2)

でした。華氏で 30 度くらいが摂氏の 0 度というわけですね。

▼ 単位換算と軸の変換

温度換算は身の回りの単位換算の例の一つです。温度だけでなく、圧力や体積、濃度など、換算する単位は数多くあると思います。換算の数学(算数?)的な処理はとても簡単ですが、グラフを描画してしまってから、しまったぁ、単位を間違ったなぁ、と気付いて単位換算するのはなかなか面倒なものです。

IGOR Pro には、そんなあなたにお勧めの素敵なパッケージが用意されています。その名は、Transform Axis。グラフを最前面に表示して、グラフメニュー>Packages>Transform Axes を選択してください。

ig_transax_01.png
Fig.1 Transform Axis のパネル


パネルが表示されます(Fig.1)。このパネルには、いくつか機能がありますが、ひとまず、

  1. Axis のリストで変換する軸を選択し
  2. Function のリストで変換方法を選択し、
  3. Do It ボタンをクリック

とすると、軸が換算できます。2 の Function には、あらかじめ次の11種類の変換方法がリストされています。

  • Reciprocal(逆数)
  • Modify Reciprocal(修正逆数)
  • DegreesCtoF(摂氏 → 華氏)
  • DegreesFtoC(華氏 → 摂氏)
  • DegreesCtoK(摂氏 → 熱力学温度)
  • DegreesKtoC(熱力学温度 → 摂氏)
  • DegreesFtoK(華氏 → 熱力学温度)
  • DegreesKtoF(熱力学温度 → 華氏)
  • Probability_Persent(確率パーセント)
  • Probability(確率)
  • SquareRoot(平方和)

温度の換算は、あらかじめ用意された Function を利用すれば簡単です。

おまけに、Make it a Mirror Axis というチェックボックスまで用意されています。これは文字通り、変換した結果を反対軸として表示するという機能です。この機能を使うと、反対軸に違う単位の軸を追加することができます。

 

▼ アレニウスプロット(ArrheniusPlot) 再び

以前の記事で、アレニウスプロットの作成方法を紹介しましたが、もとの温度データの単位 [°C] で反対軸を追加するために、ちょっとトリッキーな手順が必要でした。

Transform Axis を使えば、もっと簡単に、反対軸に単位を換算した軸を追加できます。

摂氏の温度データ Temp から、アレニウスプロットの温度データ ArrTemp に変換するには

ArrTemp = 1000/(Temp+273.15)     (3)

と、換算すればOKですね。逆に、

Temp = 1000/ArrTemp-273.15       (4)

と換算すれば元に戻ります。これら換算は Transform Axis の Function のリストにはありませんが、実は、とても簡単に追加できるんです。プロシージャウィンドウ(ウィンドウメニュー>プロシージャウィンドウ)に次のコード(ユーザ定義関数)を貼り付けてください。

Function TransAx_TempToArrTemp(w, x)
     Wave/Z w
     Variable x

     return 1000/(x+273.15)
End

「TransAx_」から始まる関数は、Transform Axis の Function のリストに自動的に追加されるようになっています。ただし、引数に、ウェーブをひとつ(ここでは w)と、変数をひとつ(ここでは x)を指定することが条件。変数 x は換算される元のデータになります。ウェーブは換算するパラメータを渡すことができるような仕組みですが、今回は使わなくて大丈夫ですね。

同様に、ArrTemp から元の Temp に戻すには

Function TransAx_ArrTempToTemp(w, x)
     Wave/Z w
     Variable x

     return 1000/x-273.15
End

という関数を用意しておけばOKです。

先の手順で反対軸を用意することを思えば、圧倒的に簡単です。ただし、同じ軸を2回変換することはできない仕様なので、X 軸に ArrTemp、反対軸に Temp を表示したい場合には、ArrTemp まではあらかじめ換算しておいて、グラフを作成したうえで(Fig.2)、X 軸を ArrTempToTemp で換算して反対軸に追加するのがよさそうです(Fig.3)。

ig_transax_03.png         ig_transax_04.png
Fig.2 アレニウスプロット
Fig.3 アレニウスプロット+反対軸

 

▼ さらに

目盛りの設定も自由自在なんです(Fig.5)。目盛りを表示したい位置、そのラベルを編集するエディタも付いています。グラフを最前面に表示して、グラフメニュー>Transform Axis>Edit Ticks on Transform Axis で利用できます。

ig_transax_05.png
Fig.5 軸目盛りの編集

▼ まとめ

Transform Axis というパッケージを紹介しました。最初から11種類の換算方法(Function)が用意されていますが、TransAx_ で始まる関数を定義すれば、自由自在に軸の変換が可能です。IGOR Pro の軸を修正ダイアログでは常用対数や底を2とする対数への変換が可能ですが、Transform Axes パッケージを利用すればもっと柔軟な変換が可能になりますので、お試しください。


井上@技術開発部でした。

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

トラックバック

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

コメントの投稿

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

HULINKS サイトの新着情報