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

PythonPythonBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

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

VMのヒント

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) matplotlib(("Matplotlib")) -.-> matplotlib/AdvancedPlottingGroup(["Advanced Plotting"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("Understanding Figures and Axes") python/DataStructuresGroup -.-> python/tuples("Tuples") python/DataStructuresGroup -.-> python/sets("Sets") matplotlib/AdvancedPlottingGroup -.-> matplotlib/3d_plots("3D Plots") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-48972{{"極座標を用いた 3D 曲面の描画"}} matplotlib/figures_axes -.-> lab-48972{{"極座標を用いた 3D 曲面の描画"}} python/tuples -.-> lab-48972{{"極座標を用いた 3D 曲面の描画"}} python/sets -.-> lab-48972{{"極座標を用いた 3D 曲面の描画"}} matplotlib/3d_plots -.-> lab-48972{{"極座標を用いた 3D 曲面の描画"}} python/importing_modules -.-> lab-48972{{"極座標を用いた 3D 曲面の描画"}} python/numerical_computing -.-> lab-48972{{"極座標を用いた 3D 曲面の描画"}} python/data_visualization -.-> lab-48972{{"極座標を用いた 3D 曲面の描画"}} end

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

この実験で必要なライブラリをインポートして始めましょう。それには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曲面を作成する方法を学びました。まず必要なライブラリをインポートし、極座標でメッシュを作成し、直交座標系でメッシュを表し、曲面を描画し、最後に表示範囲を調整して軸ラベルを追加しました。