サブプロットとしての 3D プロット

Beginner

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

はじめに

データ分析では、データを視覚化するために 3D プロットを作成する必要があることがよくあります。Matplotlib では、異なる 3D データを比較するために、サブプロットとして 3D プロットを作成することができます。この実験では、Matplotlib を使用してサブプロットとして 3D プロットを作成する方法を示します。

VM のヒント

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

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

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

ライブラリのインポート

始める前に、この実験で使用するライブラリをインポートする必要があります。Matplotlib、NumPy、および mpl_toolkits.mplot3d からの Axes3D を使用します。

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

グラフとサブプロットの作成

2 つのサブプロット付きのグラフを作成します。最初のサブプロットは 3D サーフェスプロットで、2 番目のサブプロットは 3D ワイヤーフレームプロットになります。

## Create a figure with two subplots
fig = plt.figure(figsize=plt.figaspect(0.5))

## Add the first subplot with 3D projection
ax1 = fig.add_subplot(1, 2, 1, projection='3d')

## Add the second subplot with 3D projection
ax2 = fig.add_subplot(1, 2, 2, projection='3d')

3D サーフェスプロットの作成

最初のサブプロット用に 3D サーフェスプロットを作成します。このプロット用のデータを作成するために NumPy を使用します。

## Create data for the 3D surface plot
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)

## Plot the 3D surface plot
surf = ax1.plot_surface(X, Y, Z, cmap='coolwarm', linewidth=0, antialiased=False)

## Add a color bar to the plot
fig.colorbar(surf, shrink=0.5, aspect=10)

## Set the limits for the z-axis
ax1.set_zlim(-1.01, 1.01)

3D ワイヤーフレームプロットの作成

2 番目のサブプロット用に 3D ワイヤーフレームプロットを作成します。このプロット用のデータを作成するために、mpl_toolkits.mplot3d.axes3d の get_test_data 関数を使用します。

## Create data for the 3D wireframe plot
X, Y, Z = Axes3D.get_test_data(0.05)

## Plot the 3D wireframe plot
ax2.plot_wireframe(X, Y, Z, rstride=10, cstride=10)

プロットの表示

plt.show() 関数を使用してプロットを表示します。

plt.show()

まとめ

この実験では、Matplotlib を使ってサブプロットとして 3D プロットを作成する方法を学びました。2 つのサブプロット付きのグラフを作成し、1 つ目は 3D サーフェスプロットで、2 つ目は 3D ワイヤーフレームプロットです。3D サーフェスプロット用のデータを作成するために NumPy を使用し、3D ワイヤーフレームプロット用のデータを作成するために mpl_toolkits.mplot3d.axes3d の get_test_data 関数を使用しました。また、3D サーフェスプロットにカラーバーを追加し、z 軸の範囲を設定しました。