[解決済み] matplotlib でのサーフェスプロット
2022-03-04 11:33:20
質問
3次元空間の点の集合を表す3タプルのリストがある。これらの点をすべてカバーするサーフェスを作成したい。
は
plot_surface
関数で
mplot3d
パッケージは引数としてX,Y,Zを2次元配列として要求します。これは
plot_surface
をプロットするのに適した関数と、データを必要な形式に変換する方法を教えてください。
data = [(x1,y1,z1),(x2,y2,z2),.....,(xn,yn,zn)]
解決方法は?
サーフェスの場合、3タプルのリストとは少し異なり、2次元配列でドメイン用のグリッドを渡す必要があります。
もし、3次元の点のリストしかない場合は、何らかの関数ではなく
f(x, y) -> z
なぜなら、その3次元点群をサーフェスに三角測量する方法は複数存在するからです。
ここでは、滑らかなサーフェイスの例を示します。
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
# Axes3D import has side effects, it enables using projection='3d' in add_subplot
import matplotlib.pyplot as plt
import random
def fun(x, y):
return x**2 + y
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = y = np.arange(-3.0, 3.0, 0.05)
X, Y = np.meshgrid(x, y)
zs = np.array(fun(np.ravel(X), np.ravel(Y)))
Z = zs.reshape(X.shape)
ax.plot_surface(X, Y, Z)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
<イグ
関連
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み] データ型が理解できない
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み] Matplotlib のプロット: 軸、凡例、空白を削除する
-
[解決済み] Matplotlibでプロットを表示するのではなく、画像ファイルに保存する。
-
[解決済み] Matplotlib で凡例をプロットの外側に配置する方法
-
[解決済み] IPythonノートブックmatplotlibプロットをインラインで行う方法
-
[解決済み] matplotlib のプロットで軸のテキストを非表示にする
-
[解決済み】Matplotlibで図のタイトルと軸ラベルのフォントサイズを設定するには?
-
[解決済み] Python/Matplotlibを使った3Dプロットで「カメラ位置」を設定するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み] データ型が理解できない
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み] 任意のデータを使って matplotlib で 4d プロットを作成する方法