Je suis en train de faire this avec mon data qui a la structure suivante:matplotlib contourf3d plot_surface contre trisurf
0.90000000 0.90000000 -2133.80472139
0.90000000 0.95000000 -2133.84134433
...
1.87500000 1.82500000 -2133.96171262
1.87500000 1.87500000 -2133.95550450
Avec le code suivant, j'ai réussi partiellement. Cependant, je ne peux pas tracer les contours sur les plans x-y, x-z et y-z. J'ai dû utiliser plot_trisurf car l'option plot_surface ne fonctionne pas pour ces données (je ne sais vraiment pas pourquoi). Créer un np.meshgrid n'a pas aidé (après avoir converti les listes en np.array).
import numpy as np
import sys
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm
filename = sys.argv[1]
with open(filename+'.dat', 'r') as f:
x = []
y = []
z = []
for line in f:
data = line.split()
x.append((float(data[0])))
y.append((float(data[1])))
z.append((float(data[2])))
zz = [627.503*(i+2134.070983645239) for i in z]
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_trisurf(x, y, zz, cmap=cm.jet, linewidth=0.1)
ax.dist=12
ax.view_init(30, 45)
ax.set_xlim(0.9, 1.9)
ax.set_ylim(0.9, 1.9)
ax.set_zlim(0, 170)
plt.show()
Avez-vous, vous, des idées sur la façon dont je pourrais avoir le contour sur la place de x-y et les projections sur le x-z et les y-z?
fonctionne parfaitement. À votre santé! –