43.16 Dgrid3d

コマンド set dgrid3d は、非格子状データから格子状データへの写像機能を 有効にし、そのためのパラメータを設定します。格子状データの構造について の詳細は、以下参照: splot grid_data (p. [*])

書式:

     set dgrid3d {<row_size>} {,{<col_size>} {,<norm>}}
     unset dgrid3d
     show dgrid3d

デフォルトでは dgrid3d は無効になっています。有効になると、ファイル から読み込まれる 3 次元のデータは「散在した」データ (非格子状データ) であると見なされます。格子は、グラフと等高線の描画のために、散在した データを囲む矩形から得られる寸法と、row_size/col_size で指定される数の 行と列を持つように生成されます。格子は x 方向 (行) と y 方向 (列) に 等間隔です。z の値は散在するデータの z の値の重み付きの平均として計算 されます。

3 番目のパラメータであるノルム (norm) は、重み付けを制御するもので、 各点は格子点からの距離の norm 乗の逆数で重み付けされます。(実際には、 dx, dy を各データ点と格子点との差の成分であるとすると、重みは dx^norm + dy^norm で与えられます。2 のべきのノルム、特に 4, 8, 16 に関しては、 その重みの計算はユークリッド距離を使うことで (dx^2+dy^2)^norm/2 のよう に最適化されてますが、任意の負でない整数を使うことも可能です。)

格子点に近いデータ点程それはその格子点により大きい影響を与え、ノルムの 値が大きい程格子点から離れた点の影響は小さくなります。

dgrid3d オプションは散在するデータから格子状データに変換する簡単な ローパスフィルタです。この問題に対するより洗練された手法が存在します ので、この単純な方法が不十分であれば、gnuplot の外でそのような方法 でデータを前処理するべきでしょう。

(z の値は全てのデータ点の重み付けとして求められ、隣接するデータ点を補 間しているのではありません。よって、端の影響が予期しない、望ましくない 結果を引き起こす可能性があります。ある場合では、小さいノルムの値により 局所的な平均ではなくデータ点の距離の平均を反映したような格子点が生成さ れ、一方、大きなノルムの値により、隣接するデータ点を滑らかに変化させる のでなく最も近くのデータ点と同じ値を持つ格子点による階段 ("steps") を 作ってしまいます。格子の領域内部は任意の境界条件に関する補外法により埋 めることができますが、変数は正規化されず、よって x と y の単位が x, y 各方向に関して、点の相対的な重みに影響をおよぼすことになります。)

例:

     set dgrid3d 10,10,1     # デフォルト
     set dgrid3d ,,4

最初のものは、構成する格子を 10x10 にし、重みの計算のノルムは 1 にします。 2 番目の例はノルムのみ 4 に変更します。 以下も参照

http://www.gnuplot.info/demo/scatter.htmlscatter.dem: dgrid3d のデモ

竹野茂治@新潟工科大学
2008年9月29日