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 :

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()
Avec A, B, C construits avant, et f donnée en paramètre...
J'obtiens une figure de ce type :
Nom : Rosenbrock test.jpg
Affichages : 8785
Taille : 98,8 Ko
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.