更新日: 16/07/26

3D プロットの XY Many Z データを XYZ Tripret に変換したい

質問:

3D プロットの元データを XY Many Z 形式で持っています。これを XYZ Tripret 形式に変更するにはどうしたらよいでしょうか?

XY Many Z 形式

X Y Z
X1 Y1 Z1 Z4 Z7 Z10
X2 Y2 Z2 Z5 Z8 Z11
X3 Y3 Z3 Z6 Z9 Z12
  Y4        
 

XYZ Tripret 形式

X Y Z
X1 Y1 Z1
X2 Y1 Z2
X3 Y1 Z3
X1 Y2 Z4
X2 Y2 Z5
X3 Y2 Z6
X1 Y3 Z7
X2 Y3 Z8
X3 Y3 Z9
X1 Y4 Z10
X2 Y4 Z11
X3 Y4 Z12

 

回答:

User-defined Transform を使えば、簡単に変換できます。1列目に X、2列目に Y、3列目以降に many Z のデータがあることを前提とします。User-Difined Transform ダイアログの空欄に以下のコードを入力して Run をクリックしてください。実行すると、最後の z データの次の列以降に XYZ Tripret データが生成されます。

以下は、上記と同じ手順をトランスフォームを使わずに手動で行う方法です。

手動で行うには、Index 機能を使うことで変換できます。まず、X 列を作成し、次に、YZ 列を作成するという2段階の手順で行います。

1. x 列を作成する

まず、XYZ Tripret 形式の x 列に相当する部分を作成します。x 列は、y の列数だけ反復させたものですので、この例では4回反復させます。

  1. Analysis タブから Statistical を選択して、Index → One Way を選択します。

  2. Output に First Empty を、Factor に列1を4つ指定します。



  3. Finish をクリックすると、Factor と Data 列が以下のように生成されます。Data 列が XYZ Tripret 形式の X データに相当します。Factor 列は使用しません。

2. yz 列を作成する

同様に、yz 列を作成します。

  1. まず、Z 列のタイトルそれぞれに、対応する y データをインデックスとして設定します。この例では、z1 に 1 を、z2 に 2 を、z3 に 3 を、そして、z4 に 4 をそれぞれ入力します。

    ここで入力したタイトルが、インデックス、すなわち、Y 列の値になります。


  2. Analysis タブから Statistical を選択して、Index → One Way を選択します。
    Output に First Empty を、Factor に列3~列6を指定します。


  3. Finish をクリックすると、Factor と Data 列が以下のように生成されます。+Factor 列が XYZ Tripret 形式の y データに、+Data 列が Z データに相当します。


    ここで、Y 列 (+Factor) のデータは左揃えで表示されています。これは、データがテキスト形式になっていることをあらわしていますので、これを数値に変換します。

    Worksheet タブの Format ボタンをクリックして、Numeric を適用してください (既に Numeric が選択されていますが、改めて Numeric を選択して適用を押してください。表示が右揃えになり、小数点の桁が表示されれば、Numeric 形式になったことをあらわします)。


  4. 以上で、XY Many Z 形式のデータを XYZ Tripret 形式に変換することができました。