Bonjour,
J'aimerais créer un graphique 3D comprenant une fonction de R2 dans R (donc une surface dans l'espace), et des points sur cette courbe, pour représenter l'évolution d'un algorithme itératif.
La partie de code correspondant au graphique :
Avec A, B, C construits avant, et f donnée en paramètre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 graphe = plt.figure() axes = graphe.add_subplot(111, projection='3d') axes.scatter(A,B,C, s = 50, c = 'r', depthshade = False) x = np.arange(-1.1, 1.1, 0.015) y = np.arange(-0.6, 1.6, 0.015) X, Y = np.meshgrid(x, y) zs = np.array([f([x, y]) for x,y in zip(np.ravel(X), np.ravel(Y))]) Z = zs.reshape(X.shape) axes.contourf(X, Y, Z, zdir='z', offset=-2, cmap = 'Blues') axes.plot_surface(X, Y, Z, cmap = 'Blues') axes.set_xlabel('Axe x') axes.set_ylabel('Axe y') axes.set_zlabel('Axe z') plt.show()
J'obtiens une figure de ce type :
Le soucis étant que la courbe "coupe" les points : ils apparaissent en dessous, mais ne dépassent pas au dessus... C'est embêtant car la figure est incompréhensible vue de dessous...
J'ai essayé de construire les points avant la courbe, après la courbe, mais rien n'y fait, ils refusent de se montrer au dessus...
Si quelqu'un a une idée !
Merci.
Partager