matplotlibでタプルのリストから3Dサーフェスをプロットする方法
matplotlibでタプルのリストから3Dサーフェスをプロットするには、以下の手順に従います。
手順
図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
タプルのリストを作成します。
タプルのリストから x、y、z の各データポイントを取り出します。
座標ベクトルから座標行列を生成します(np.meshgrid を使用)。
サーフェスプロット用の h のデータポイントを計算します。
新しい図を作成するか、既存の図をアクティブにします。
図から3D投影の現在の軸を取得します。
サーフェスプロットを作成します。
図を表示するには plt.show() メソッドを使用します。
サンプルコード
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
# タプルのリスト
data = [(1, 3, 2), (3, 5, 2), (4, 7, 4), (8, 7, 4),
(3, 6, 1), (3, 9, 0), (3, 9, 0)]
# タプルのリストからデータポイントを取得
x, y, z = zip(*data)
x, y = np.meshgrid(x, y)
h = x ** 2 + y ** 2
fig = plt.figure()
# 現在の軸を取得(3D投影)
ax = fig.gca(projection='3d')
# サーフェスプロット
ax.plot_surface(x, y, h, cmap='plasma')
plt.show()
補足:新しいバージョンのmatplotlibでの注意点
fig.gca(projection='3d') は古い書き方で、最近のmatplotlibでは非推奨となっています。代わりに fig.add_subplot(projection='3d') を使うと、より安全に3D軸を作成できます。
# 推奨される書き方 ax = fig.add_subplot(projection='3d')
出力結果
上記のコードを実行すると、次のような3Dサーフェスプロットが表示されます。

-
NumPyの3次元配列からMatplotlibで3Dプロットを作成する方法
NumPyで作成した3次元配列からMatplotlibを使って3Dプロットを描画するには、まずnumpyで3次元配列を生成し、そこからx・y・z座標のデータを抽出します。以下の手順に従って実装できます。figure()メソッドを使用して、新しい図を作成するか、既存の図をアクティブにします。add_subplot()メソッドを使用して、サブプロット配置の一部として図に~.axes.Axes(3D軸)を追加します。size=(3, 3, 3)のランダムデータを生成します。3次元配列からx、y、zのデータを抽出します。作成した軸上に3D散布図をプロットします。図を表示するには、show()メソッドを
-
Matplotlibの図からSVGファイルをエクスポートする方法
Matplotlibで作成した図(フィギュア)をSVGファイルとして書き出す方法を解説します。SVGはベクター形式のため、拡大・縮小しても画質が劣化せず、Webサイトや印刷物での利用に最適です。エクスポートの手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。figureオブジェクトとサブプロットのセットを作成します。NumPyを使ってランダムなx座標とy座標のデータポイントを生成します。plot()メソッドを使ってxとyのデータポイントをプロットします。savefig()メソッドを使って.svg形式のファイルとして保存します。コード例import numpy a