python で等高線を描くなら meshgrid して contour

等高線を描くのに必要なデータは 2 つあります。

マス目で区切られた底面、そして、マス目の交点における高さです。

masume

マス目の作り方、そして高さをあわせた描画方法を見ていきます。

- 目次 -

スポンサーリンク

meshgrid でマス目を作る

交点

numpy の meshgrid を使うとマス目の交点が簡単に作れます。
たとえば、図のようなマス目の場合

masu_small

出来上がる 2 つの配列 X、Y は同じサイズです。そして、両配列の要素を組み合わせるとマス目の交点になります。

masu_small


交点
<----------->   
meshxy


計 9 個の交点ができあがります。

高さ

あとは、この交点ごとの高さがあればばデータは揃います。

地図を描くような場合は高さとして測量データを用いますが、幾何学模様を描く場合は X と Y から 高さを計算します。たとえば、原点からの距離を高さにするなら

となります。

描画は contour

描画 は matplotlib の contour で行います。
実際に描画してみます。上の例ではさすがにデータが少ないので、交点を 100 × 100 に増やします。

contour_def

色指定

色の指定は colors で行います。

contour_rb

本数と間隔

等高線の本数と間隔は levels で指定できます。線を引きたい高さを配列で指定します。

contour_levels

ラベル

contour が返却するインスタンスを使ってラベルを付加できます。

contour_label

スポンサーリンク
その他の記事
  1. Pythonを使えば、こんなに簡単にコンターマップを作れるのですね。
    ただ、気圧のコンターマップのように、交点(気圧計が無い)のZの値が判らないような場合は、どのようなアルゴリズムになるのでしょうか知りたいです。・・・というかそれが必要です。

Mustuo Oyama へ返信する コメントをキャンセル