極座標を用いた 3D 曲面の描画

Beginner

This tutorial is from open-source community. Access the source code

はじめに

この実験では、Python の Matplotlib ライブラリを使って極座標で 3D 曲面を作成する手順を紹介します。この実験では、Python プログラミングと Matplotlib ライブラリの基本的な知識が前提となっています。

VM のヒント

VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。

時々、Jupyter Notebook が読み込み完了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリをインポートする

この実験で必要なライブラリをインポートして始めましょう。それには Matplotlib と NumPy が含まれます。Matplotlib は Python 用のグラフ描画ライブラリであり、NumPy は Python プログラミング言語用のライブラリで、大きな多次元配列や行列に対するサポートを追加します。

import matplotlib.pyplot as plt
import numpy as np

メッシュを作成する

次に、極座標でメッシュを作成し、対応する Z を計算します。半径値の配列 r と角度値の配列 p を作成し、その後 NumPy の meshgrid() 関数を使って RP の値のグリッドを作成します。最後に、Z の式を使って曲面の各点の高さを計算します。

r = np.linspace(0, 1.25, 50)
p = np.linspace(0, 2*np.pi, 50)
R, P = np.meshgrid(r, p)
Z = ((R**2 - 1)**2)

直交座標系でメッシュを表す

次に、NumPy の cos()sin() 関数を使って、直交座標系でメッシュを表します。

X, Y = R*np.cos(P), R*np.sin(P)

曲面を描画する

このステップでは、Matplotlib の plot_surface() 関数を使って曲面を描画します。曲面の色を設定するために、カラーマップ YlGnBu_r を使います。

fig = plt.figure()
ax = fig.add_subplot(projection='3d')
ax.plot_surface(X, Y, Z, cmap=plt.cm.YlGnBu_r)

表示範囲を調整して軸ラベルを追加する

最後に、Matplotlib の set_zlim()set_xlabel()set_ylabel()set_zlabel() 関数を使って、描画の表示範囲を調整して軸ラベルを追加します。また、軸ラベルを記述するために LaTeX の数式モードを使います。

ax.set_zlim(0, 1)
ax.set_xlabel(r'$\phi_\mathrm{real}$')
ax.set_ylabel(r'$\phi_\mathrm{im}$')
ax.set_zlabel(r'$V(\phi)$')

まとめ

この実験では、Python の Matplotlib ライブラリを使って極座標で 3D 曲面を作成する方法を学びました。まず必要なライブラリをインポートし、極座標でメッシュを作成し、直交座標系でメッシュを表し、曲面を描画し、最後に表示範囲を調整して軸ラベルを追加しました。