Matplotlib による 2 次元と 3 次元のプロット作成

PythonPythonBeginner
今すぐ練習

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

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

はじめに

この実験では、Matplotlibを使って2次元プロットと3次元プロットの両方を含むグラフを作成する方法を学びます。2次元プロットでは減衰振動を表示し、3次元プロットでは正弦波を表示します。

VMのヒント

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

Jupyter Notebookの読み込みには数秒かかる場合があります。Jupyter Notebookの制限により、操作の検証は自動化できません。

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

ライブラリのインポート

このステップでは、この実験に必要なライブラリをインポートします。グラフ作成にはMatplotlibを、配列作成にはNumPyを、3次元グラフ作成にはmpl_toolkitsを使用します。

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

関数の定義

このステップでは、減衰振動を生成する関数を定義します。

def f(t):
    return np.cos(2*np.pi*t) * np.exp(-t)

グラフの作成

このステップでは、2つのサブプロット付きのグラフを作成します。最初のサブプロットは2次元プロットで、2番目のサブプロットは3次元プロットになります。

fig = plt.figure(figsize=plt.figaspect(2.))
fig.suptitle('A Tale of 2 Subplots')

2次元プロットの作成

このステップでは、減衰振動の2次元プロットを作成します。

ax1 = fig.add_subplot(2, 1, 1)
t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)
t3 = np.arange(0.0, 2.0, 0.01)

ax1.plot(t1, f(t1), 'bo',
         t2, f(t2), 'k--', markerfacecolor='green')
ax1.grid(True)
ax1.set_ylabel('Damped oscillation')

3次元プロットの作成

このステップでは、正弦波の3次元プロットを作成します。

ax2 = fig.add_subplot(2, 1, 2, projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

surf = ax2.plot_surface(X, Y, Z, rstride=1, cstride=1,
                        linewidth=0, antialiased=False)
ax2.set_zlim(-1, 1)

プロットの表示

このステップでは、グラフを表示します。

plt.show()

まとめ

この実験では、Matplotlibを使って2次元と3次元の両方のプロット付きのグラフを作成しました。2次元プロットは減衰振動を表示し、3次元プロットは正弦波を表示しました。配列の作成にはNumPyを、3次元プロットにはmpl_toolkitsを使用しました。