この記事では、PythonのMatplotlibライブラリを使用して3Dサーフェスプロットを作成およびカスタマイズする方法を解説します。具体的なコード例とその詳細な解説、さらに応用例まで含めています。
目次
はじめに
Matplotlibは、Pythonでデータを視覚化するためのライブラリです。2Dグラフはもちろん、3Dグラフも作成できます。今回はその中でも3Dサーフェスプロットの作成とカスタマイズ方法に焦点を当てます。
環境設定
必要なパッケージのインストール
Matplotlibを使用するには、まずライブラリをインストールする必要があります。
# Matplotlibのインストール
pip install matplotlib
基本的な3Dサーフェスプロットの作成
サンプルコード
以下は、基本的な3Dサーフェスプロットを作成するコードです。
import matplotlib.pyplot as plt
import numpy as np
# データ生成
x = np.linspace(-5, 5, 50)
y = np.linspace(-5, 5, 50)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2 + y**2))
# グラフ作成
fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")
ax.plot_surface(x, y, z, cmap="viridis")
plt.show()
コードの解説
– `numpy`と`matplotlib.pyplot`をインポートしています。
– `np.linspace(-5, 5, 50)`で-5から5までの50個の点を生成しています。
– `np.meshgrid(x, y)`で、xとyの格子点を作成しています。
– `np.sin(np.sqrt(x**2 + y**2))`でz軸のデータを生成しています。
– 最後に`ax.plot_surface()`で3Dサーフェスプロットを描画しています。
カスタマイズ
カラーマップを変更することで、グラフの見た目を調整できます。
# カラーマップを 'plasma' に変更
ax.plot_surface(x, y, z, cmap="plasma")
応用例
データにノイズを追加する
より現実的なデータを模倣するために、ノイズを追加する方法です。
# ノイズを追加
noise = np.random.normal(0, 0.2, z.shape)
z_noise = z + noise
# ノイズを追加したデータでプロット
ax.plot_surface(x, y, z_noise, cmap="viridis")
複数のサーフェスを表示する
1つのグラフに複数のサーフェスを重ねる方法です。
# 新しいzデータ
z2 = np.cos(np.sqrt(x**2 + y**2))
# 2つのサーフェスをプロット
ax.plot_surface(x, y, z, cmap="viridis")
ax.plot_surface(x, y, z2, cmap="plasma", alpha=0.5)
まとめ
この記事では、Matplotlibで3Dサーフェスプロットを作成およびカスタマイズする方法を詳細に解説しました。基本的な作成方法から応用例まで幅広く紹介したので、ぜひ実際のデータ解析や可視化に活用してください。
コメント