0
내가 파이썬에 새로운 그리고 난 2 차원 배열에서 3D 표면을 만들기 위해 노력하고있어에서 surf3d 플롯하려고하지만, 내가 오류가있어 나타납니다 :는 2 차원 배열
여기ValueError: shape mismatch: objects cannot be broadcast to a single shape
내 가득를 코드
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt
from matplotlib.ticker import LinearLocator, FormatStrFormatter
def fourier(delX,delT):
xMax = 10
tMax = 12
m = int(xMax/delX)
n = int(tMax/delT)
l = 0.020875
t = 0.0
Matrix =[[0 for x in range(m+1)]for y in range(n+1)]
for x in range(n+1):
Matrix[x][0] = 100
Matrix[x][5] = 50
for x in range(n):
Matrix[x+1][1] = Matrix[x][1]+l*(Matrix[x][2]-2*Matrix[x][1]+Matrix[x][0])
Matrix[x+1][2] = Matrix[x][2]+l*(Matrix[x][3]-2*Matrix[x][2]+Matrix[x][1])
Matrix[x+1][3] = Matrix[x][3]+l*(Matrix[x][4]-2*Matrix[x][3]+Matrix[x][2])
Matrix[x+1][4] = Matrix[x][4]+l*(Matrix[x][5]-2*Matrix[x][4]+Matrix[x][3])
X = np.arange(0,xMax+0.1,delX)
Y = np.arange(0,tMax+0.1,delT)
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X,Y,Matrix,cmap=cm.coolwarm,linewidth=0,antialiased=False)
ax.set_zlim(0,101)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()
왜 모양이 일치하지 않고 오류를 해결할 수 있습니까?
와우! 고마워! 더 많은 사게 meshgrid을 지금 배워야한다 –
나의 대답이 도움이된다면, 그것을 올바른 것으로 표시 해주세요. – eyllanesc