Pythonにおけるcontourf()の利用方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonにおけるcontourf()の利用方法について現役エンジニアが解説しています。contourfはPythonのデータ描画ライブラリであるmatplotlibのメソッドです。contourfメソッドを使って等高線を描く方法について解説します。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

Pythonにおけるcontourf()の利用方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

 

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まるでしょう。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonにおけるcontourf()の利用方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

contourf()とは?

contourf()関数は等高線を表すメソッドです。

Pythonのデータ描画ライブラリであるmatplotlibに付属しています。

等高線は山の地図や天気予報でよくある気圧分布で使用されており、高さや気圧などの値が同じ点を結ぶことで、図に起こすことが可能です。

Pythonのcontourfで作成する、等高線の図のサンプル。

山の場合は標高が同じ地点をむすぶことで等高線を作ります。

気圧分布の場合は気圧が等しい点を結んで等高線にします。

等高線を作成するときに、値が同じ点を結ぶだけでは味気ないので色をつけてわかりやすくしたい場合などには、contourf()関数を使うことでわかりやすくすることが可能です。

contourf()の使い方

contourf()関数を使う前に、等高線の描画方法についてふれていきましょう。

等高線を描画するには、

  1. 格子点の座標を用意する
  2. 各点ごとの値を用意する
  3. 等高線を描画する

という手順を踏みます。

 

1.格子点を作る場合には、Numpyライブラリのmeshgrid()関数を使いましょう。

x座標、y座標を用意して、その値をmeshgrid()関数に渡します。

X, Y = numpy.meshgrid(x座標, y座標)

2.各点ごとに原点からの距離を用意します。

data = np.sqrt(X**2 + Y**2)

として、距離を計算しましょう。

数式では、

Pythonで等高線を引くための計算式

のようになります。

3.等高線を描画していきます。

contourf(格子点のx座標の配列, 格子点のy座標の配列, 値の配列)

のように、contourf()関数にそれぞれの値を渡しましょう。

この例の場合には等高線は、下記のように表すことが可能です。

Pythonのcontourf()関数で作成した等高線。

原点との距離が同じ点は円を描くのでわかりやすいといえるでしょう。

[PR] Pythonで挫折しない学習方法を動画で公開中

contourf()を利用して等高線を描画してみよう

実際にcontourf()関数を使って等高線を描画してみます。

先程は、原点からの距離を描画したものの、そのまま使うのは少し面白みに欠けるため、

Pythonのcontourf()関数で等高線を作成するための計算式。

という値を使って等高線を描いていきます。

以下、コード例です。

import numpy as np  #Numpyのインポート
import matplotlib.pyplot as plt  #matplotlib.pyplotをインポート
#①格子点の座標を用意
x = np.arange(-5, 6)  #-5~5の整数を用意
y = np.arange(-5, 6)  #上と同じ
X, Y = np.meshgrid(x, y)  #格子点座標の作成
#②各点ごとの値を用意
data = X**2 - Y**2  #格子点ごとのデータを作成
#③等高線を描画
plt.contourf(X, Y, data)  #等高線をプロット
plt.show()  #画像の表示

以上を実行すると、次のような画像が表示されるでしょう。

これは双曲線と呼ばれるものです。

contourf()関数で作成した等高線と双曲線。

以上、この記事では、Pythonでcontourf()関数を使って等高線を描く方法について解説しました。

matplotlibには様々な描画方法があるので、1つ1つ慣れていきましょう。

執筆してくれたメンター

小倉翔悟(おぐらしょうご)

AIプログラミングを使って開発を行う大学3年生。

プログラミング歴は約3年でPythonは割と得意。好きな物理理論は一般相対性理論で動物も好き。

 

大石ゆかり

Pythonにおけるcontourf()の利用方法が分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので参加してみてください。