前提・実現したいこと
下記のコードのコメントアウト部分(X, Y = np.meshgrid(x, y))を
その下のコード(X , Y = x, y)に変えるとエラーが出る
なぜエラーが出るのか理解できない
発生している問題・エラーメッセージ
Traceback (most recent call last): File "ファイル名", line 24, in <module> ax.plot_wireframe(X, Y, Z) File "C:ファイル名\mpl_toolkits\mplot3d\axes3d.py", line 1809, in plot_wireframe raise ValueError("Argument Z must be 2-dimensional.") ValueError: Argument Z must be 2-dimensional.
該当のソースコード
python
1import matplotlib.pyplot as plt 2from mpl_toolkits.mplot3d import Axes3D 3import numpy as np 4 5 6def func_Z(x, y): 7 return x**2 + y **2 8 9x = np.linspace(-3.0, 3.0, 100) 10y = np.linspace(-3.0, 3.0, 100) 11 12 13#X, Y = np.meshgrid(x, y) 14X , Y = x, y 15Z = func_Z(X, Y) 16 17fig = plt.figure() 18ax = Axes3D(fig) 19 20ax.set_xlabel('x') 21ax.set_ylabel('y') 22ax.set_zlabel('f(x, y)') 23 24ax.plot_wireframe(X, Y, Z) 25 26plt.show()
エラーで二つの次元設定が必要と書いてあり、それはXとYにあたると思うのですが、
なぜXとYがfunc_Zの引数とみなされないのでしょうか?
コメントアウトしてあるnumpy.meshgrid(x, y)は格子点を作るものであり、
網目を作ってグラフを見やすくしてあるだけだと思っているのですが、ここに問題があるのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。