matplotlib の plot_surface で 'int' object has no attribute 'ndim' というエラーが出る
python3.6を使っています。
https://teratail.com/questions/81140
を参考にして、3次元の直方体を描こうと思ったのですが、できません。書いたコードは、上のurlのコードと全く同じで、次のようになります。
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
x = [-1,1]
y = [-1,1]
X,Y = np.meshgrid(x,y)
ax = plt.subplot(111, projection='3d')
ax.plot_surface(X,Y,1,alpha=0.7)
ax.plot_surface(X,Y,-1,alpha=0.7)
ax.plot_surface(X,1,Y,alpha=0.7)
ax.plot_surface(X,-1,Y,alpha=0.7)
ax.plot_surface(-1,X,Y,alpha=0.7)
ax.plot_surface(-1,X,Y,alpha=0.7)
ax.set_xlim(-2, 2)
ax.set_ylim(-2, 2)
ax.set_zlim(-2, 2)
plt.show()
しかし、spyderで打ち込むと、
in plot_surface
if Z.ndim != 2:
AttributeError: 'int' object has no attribute 'ndim'
とエラーを吐きます。
モジュールのバージョンは
numpy==1.14.0
matplotlib==2.1.2
です。