tiempo real que matrices graficos grafico graficas graficar coordenadas barras python 3d matplotlib mplot3d

real - python graficos 2d



Diagrama 3D Matplotlib-Formato 2D para datos de entrada? (1)

Necesitas generar la malla de malla. X, Y y Z deben ser matrices en 2D

import numpy import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import axes3d def peaks(x,y): return x * numpy.sin(y) fig = plt.figure() ax = fig.gca(projection=''3d'') X = Y= numpy.arange(-3, 3, 0.1).tolist() X, Y = numpy.meshgrid(X, Y) Z = [] for i in range(len(X)): Z.append(peaks(X[i],Y[i])) ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3) cset = ax.contour(X, Y, Z, zdir=''z'', offset=-8) cset = ax.contour(X, Y, Z, zdir=''x'', offset=-8) cset = ax.contour(X, Y, Z, zdir=''y'', offset=8) ax.set_xlabel(''X'') ax.set_xlim(-8, 8) ax.set_ylabel(''Y'') ax.set_ylim(-8, 8) ax.set_zlabel(''Z'') ax.set_zlim(-8, 8) plt.show()

Estoy trazando una función de dos parámetros con matplotlib. Copié un ejemplo en el tutorial matplotlib y lo transformé con mis propios datos de entrada: vectores X e Y (igualmente espacios números en -3: 3) y Z = picos (X, Y) con picos una función que definí antes de eso. ¿Qué está mal?

def peaks(x,y): xsq=x**2 ysq=y**2 xsq_one=(x+1)**2 ysq_one=(y+1)**2 m1=3*(1-x)**2 m2=10*(x/5-x**3-y**5) m3=1/3 return m1*numpy.exp(-xsq-ysq_one)-m2*numpy.exp(-xsq-ysq)-m3*numpy.exp(-xsq_one-ysq) from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt fig = plt.figure() ax = fig.gca(projection=''3d'') X=Y=numpy.arange(-3,3,0.01).tolist() Z=[] for i in range(len(X)): Z.append(peaks(X[i],Y[i])) ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3) cset = ax.contour(X, Y, Z, zdir=''z'', offset=-100) cset = ax.contour(X, Y, Z, zdir=''x'', offset=-40) cset = ax.contour(X, Y, Z, zdir=''y'', offset=40) ax.set_xlabel(''X'') ax.set_xlim(-40, 40) ax.set_ylabel(''Y'') ax.set_ylim(-40, 40) ax.set_zlabel(''Z'') ax.set_zlim(-100, 100) plt.show()

¡Gracias por el consejo!