H2:   2次元等高線グラフセクション --------------------------------- .. _基本スタイル-1: 基本スタイル ~~~~~~~~~~~~ H2: セクションは、3次元データを2次元等高線グラフで表すセクションです。 まず簡単な例題を見てみましょう。 .. rubric:: List 2.15 ● 2次元等高線グラフ例題1 :name: list-2-15 :class: angel-list-caption .. code-block:: text 1: H2: Y = 3.0 TO -3.0 BY -1.0 ; X = -3.0 TO 3.0 BY 1.0 ; 2: 0 0 0 0 0 0 0 3: 0 8 0 2 4 0 0 4: 0 0 1 5 6 2 0 5: 0 2 4 14 15 9 0 6: 0 2 5 23 32 12 0 7: 0 0 3 10 16 8 0 8: 0 0 0 0 0 0 0 .. figure:: assets/fig208.png :name: fig-ref-2-11 :width: 297.5pt :align: center :class: responsive-figure 2次元等高線グラフ例題1 H2: セクションは、2次元の等間隔メッシュに与えられた高さのデータより、 等高線を描くものです。H2: 行で、 2次元の等間隔メッシュの最小、最大値、メッシュ間隔、 H2: 行以下にあるデータの読み込み方を指定します。 上の例題の場合、X, Y 軸とも 最小値 :math:`= -3.0`\ 、最大値 :math:`= 3.0`\ 、メッシュ間隔 :math:`= 1.0` を表します。 データのポイント数は、この最大値、最小値、メッシュ間隔から自動判別します。 H2: 行の X, Y の順番、最大値、最小値の順番は、 データの読み込み方を次のように規定します。 :: H2: Y = 3.0 TO -3.0 BY -1.0 ; X = -3.0 TO 3.0 BY 1.0 ; は、Fortran プログラムの :: READ(*,*) ( ( DATA(IX,IY), IX = 1,7,1 ), IY = 7,1,-1 ) | に対応します。従って、基本スタイルは、 .. container:: minipage angel-doublebox ``H2:`` { ``Y`` :math:`|` ``X`` } ``=`` :math:`r_1` ``TO`` :math:`r_2` ``BY`` :math:`r_3` ``;`` { ``X`` :math:`|` ``Y`` } ``=`` :math:`r_4` ``TO`` :math:`r_5` ``BY`` :math:`r_6` ``;`` | X 軸と Y 軸のパートの順番を入れ換えれば、読み込む順番が (上のプログラムでは、\ ``IX, IY`` の順番が)逆になります。また、 X 軸と Y 軸のパートの最後の ; は必ず必要です。 数値データは、上の順番で並んでいれば、1行の個数は自由です。 等高線パラメーター ~~~~~~~~~~~~~~~~~~ 等高線の本数と各々の高さ、線の色、線の補間などの指定は、 パラメーターセクション P: で行います。 .. container:: center .. table:: 等高線パラメーター +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | パラメーター |       説明 | +==================================================+===============================================================================================================================================================================================================+ | ``ICUT(`` :math:`i` ``)`` | 等高線の本数を :math:`i` 本とします。デフォルトは、 8 本です。 | +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``CUTS(`` :math:`r_1, r_2, r_3, ...., r_N` ``)`` | .. container:: minipage | | | | | | :math:`r_1, r_2, ...` で等高線の高さを指定します。本数は自由です。 また、\ :math:`r_1, r_2, ...` の大小の順番は自由です。 指定がないときは、高さの最大値、最小値の間隔を8等分した 8 本の等高線が入ります。 | +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``COLN(`` :math:`c` ``)`` | 等高線の色を :math:`c` [#c]_, [#h]_ とします。 | +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``COLS(`` :math:`c_1, c_2, c_3, ...., c_N` ``)`` | .. container:: minipage | | | | | | :math:`c_1, c_2, c_3, ...` `[2] <#h>`_ で、カラー、グレースケールを指定します。 等高線との関連は、 ``CUTS(`` :math:`r_1, r_2, r_3, ...., r_N` ``)`` で指定した 等高線に対応します。 | +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``COLS`` | とだけ指定すれば、 自動的に色を振り分けます。 | +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``CONL(`` :math:`L, M, D, ...., U` ``)`` | .. container:: minipage | | | | | | :math:`L, M, D, ...` で、等高線の線種を指定します。 等高線との関連は、 ``CUTS(`` :math:`r_1, r_2, r_3, ...., r_N` ``)`` で指定した 等高線に対応します。 | +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``SMAX(`` :math:`c` ``)`` | 最大値と最小値の色を指定します。 | +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``SMIN(`` :math:`c` ``)`` | デフォルトは赤(R)と青(B)です。 | +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``ZLIN`` | 等高線の高さをリニア表示で等分にします。(default) | +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``ZLOG`` | 等高線の高さを対数表示で等分にします。何れも\ ``CUTS``\ が無い場合 | +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``IWD2(`` :math:`id` ``)`` | .. container:: minipage | | | | | | 等高線の線の太さを指定します。 | | | | | | デフォルトは :math:`id = 4` で単位は :math:`1/300` inch です。 | +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``IPD2`` | .. container:: minipage | | | | | | 等高線を補間し滑らかにします。 デフォルトで4点、補間点数を増やすときは、 ``IPD2[``\ :math:`n` ``]`` のように、\ ``[  ]`` を使い :math:`n` で指定します。 | +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``IPDS`` | .. container:: minipage | | | | | | メッシュデータをGauss smearingで滑らかにします。 デフォルトで隣接のメッシュ(:math:`n=1`)、メッシュ数を増やすときは、 ``IPDS[``\ :math:`n` ``]`` のように、\ ``[  ]`` を使い :math:`n` で指定します。 | +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``H2NR`` | 2次元データの数値のチェックを行います。(default) | +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ``H2FS`` | 2次元データの数値のチェックを行いません。 | +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. [#c] 色の定義の仕方は、ラインパラメーターのところで解説します。 .. [#h] 色を\ :math:`H S B` の数値で指定する時は、\ :math:`c_i` に空白で 区切って3つの数値が入ります。 上の例題1と同じインプットで\ ``IPD2`` と ``COLS`` を 指定したときの結果を下に示します。 .. rubric:: List 2.16 ● 2次元等高線グラフ例題2 :name: list-2-16 :class: angel-list-caption .. code-block:: text 1: P: IPD2 COLS 2: H2: Y = 3.0 TO -3.0 BY -1.0 ; X = -3.0 TO 3.0 BY 1.0 ; 3: 0 0 0 0 0 0 0 4: 0 8 0 2 4 0 0 5: 0 0 1 5 6 2 0 6: 0 2 4 14 15 9 0 7: 0 2 5 23 32 12 0 8: 0 0 3 10 16 8 0 9: 0 0 0 0 0 0 0 .. figure:: assets/fig209.png :name: fig-ref-2-12 :width: 297.5pt :align: center :class: responsive-figure 2次元等高線グラフ例題2