Tracer un graphe en 3D en python
Re: Tracer un graphe en 3D en python
je n'ai pas lu en détail, mais je pense que c'est un maillage
https://fr.wikipedia.org/wiki/Maillage
et que les coordonnées (xi, yi) sont donc conservées dans un tableau (une matrice).
https://fr.wikipedia.org/wiki/Maillage
et que les coordonnées (xi, yi) sont donc conservées dans un tableau (une matrice).
Re: Tracer un graphe en 3D en python
Ben c'est ce que je pense aussi, mais dans ce cas, on a juste une matrice contenant les (xi, yi) et pas deux matrices X et Y non ?
Re: Tracer un graphe en 3D en python
En fait np*, je pense que tu as raison, je ne saisis pas bien ce qui se passe dans Z =X**2 + Y**2... Je veux bien que tu m'expliques si tu as le temps
.

Re: Tracer un graphe en 3D en python
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Re: Tracer un graphe en 3D en python
A mon avis tu devrais bien faire une heatmap pour présenter tes résultats.
Avec comme abscisse les valeurs de p que tu as testé, comme ordonnées les valeurs de d que tu as testé par exemple, et la couleur représentant la proportion.
Après ce que tu cherches peut-être à faire, si j'ai bien compris, c'est choisir un modèle et faire une régression (bref fitter un modèle).
Mais pour ça il faut que tu aies déjà tes résultats de simulation, ça ne devrait pas prendre longtemps. C'est là que tu décides d'une (ou des) types de fonctions que tu veux essayer de coller
Je suis intéressé par ce que tu trouves si jamais t'as le coeur à poster tes résultats !
Après si tu n'y arrives pas, ça part dans le learning
EDIT: maintenant que j'y pense, quand tu parles de faire 10 fois l'expérience pour un p et d donné et de faire la moyenne, tu peux aussi stocker la variance du résultat. Cette grandeur peut contenir des infos importantes... si le taux de mortalité vaut parfois 0.1 et 0.9 pour le même couple de valeurs p et d, c'est pas pareil que s'il vaut toujours 0.5 pour le même couple de valeurs.
Avec comme abscisse les valeurs de p que tu as testé, comme ordonnées les valeurs de d que tu as testé par exemple, et la couleur représentant la proportion.
Après ce que tu cherches peut-être à faire, si j'ai bien compris, c'est choisir un modèle et faire une régression (bref fitter un modèle).
Mais pour ça il faut que tu aies déjà tes résultats de simulation, ça ne devrait pas prendre longtemps. C'est là que tu décides d'une (ou des) types de fonctions que tu veux essayer de coller

Après si tu n'y arrives pas, ça part dans le learning

EDIT: maintenant que j'y pense, quand tu parles de faire 10 fois l'expérience pour un p et d donné et de faire la moyenne, tu peux aussi stocker la variance du résultat. Cette grandeur peut contenir des infos importantes... si le taux de mortalité vaut parfois 0.1 et 0.9 pour le même couple de valeurs p et d, c'est pas pareil que s'il vaut toujours 0.5 pour le même couple de valeurs.
The Axiom of Choice is obviously true, the Well-Ordering Principle is obviously false, and nobody knows about Zorn's Lemma. - Jerry Bona
Re: Tracer un graphe en 3D en python
Mouais...c'est ultra long d'écrire un livre et ca ne rapporte rien ou presque 
Bon sinon, X et Y dans l'exemple ici ce sont des matrices. À partir de x et y qui sont des range, on crée X et Y qui sont des matrices.
Tu as disons x et y qui vont de 0 à 9 par pas de 1.
Tu veux calculer Z sur [0,9]^2 avec Z = X**2 - Y**2. Il te faut donc que X contienne 100 élements et Y aussi.
Moralement, X contient la première coordonnée des 100 couples de valeurs (x,y) et Y la seconde.
>>> nx, ny = (3, 2)
>>> x = np.linspace(0, 1, nx)
>>> y = np.linspace(0, 1, ny)
>>> xv, yv = meshgrid(x, y)
>>> xv
array([[ 0. , 0.5, 1. ],
[ 0. , 0.5, 1. ]])
>>> yv
array([[ 0., 0., 0.],
[ 1., 1., 1.]])
je ne fais que citer la bonne doc : http://docs.scipy.org/doc/numpy/referen ... hgrid.html

Bon sinon, X et Y dans l'exemple ici ce sont des matrices. À partir de x et y qui sont des range, on crée X et Y qui sont des matrices.
Tu as disons x et y qui vont de 0 à 9 par pas de 1.
Tu veux calculer Z sur [0,9]^2 avec Z = X**2 - Y**2. Il te faut donc que X contienne 100 élements et Y aussi.
Moralement, X contient la première coordonnée des 100 couples de valeurs (x,y) et Y la seconde.
>>> nx, ny = (3, 2)
>>> x = np.linspace(0, 1, nx)
>>> y = np.linspace(0, 1, ny)
>>> xv, yv = meshgrid(x, y)
>>> xv
array([[ 0. , 0.5, 1. ],
[ 0. , 0.5, 1. ]])
>>> yv
array([[ 0., 0., 0.],
[ 1., 1., 1.]])
je ne fais que citer la bonne doc : http://docs.scipy.org/doc/numpy/referen ... hgrid.html
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Re: Tracer un graphe en 3D en python
Bonjour,
Nous n'avons pas la même conception de l'apprentissage de l'informatique pour débutants, surtout quand eux-même disent ne pas bien comprendre et je comprends que votre position, que je ne partage pas, soit que l'on apprenne bien l'informatique (uniquement ?) en codant des projets conséquents et en lisant directement la documentation.
http://fr.mathworks.com/company/newslet ... tions.html
Pour résumer, il est mieux qu'une grille soit explicitement représentée par deux matrices X et Y telles que les coordonnées du point d'indices (i, j) soient (X[i, j], Y[i, j]), et non deux vecteurs x et y dont les coordonnées du point d'indices (i, j) seraient (x, y[j]). Premièrement cela est explicite et évite de nombreux cas de confusion. Ensuite, cela permet de travailler directement sur les matrices (par exemple ajouter X et Y, ce qui serait impossible sinon). Enfin, cela permet des grilles non-régulières.
Comme en général on a plutôt en tête les vecteurs x et y, la fonction meshgrid permet de transformer cette représentation en les matrices complète X et Y. Attention au fait qu'il y a deux manières de lire une grille : la manière matricielle (0, 0) et en haut à gauche et les lignes sont en premier et la manière cartésienne, avec (0, 0) en bas à gauche et les abscisses (donc les colonnes) en premier.
Je pense que tu peux chercher la réponse tout seul, avec un petit exemple, et un papier et un crayon (je vais en faire hurler plus d'un) : X ** 2 est l'opération matricielle point à point, de même '+' va additionner les matrices point à point. Si pout tout (i, j), X[i, j] = i et Y[i, j] = j, que va donc valoir Z ?
* EDIT: je viens de prendre connaissance de la réponse précédente.
Je ne comprends pas l'intérêt, ni le sens, de ce commentaire. Leo11 est peut-être un cadre-ingénieur honteux qui se cache derrière un pseudonyme pour masquer son incompétence sur un forum pour élèves. Mais Leo11 est peut-être aussi un apprenant qui pose ses questions pour un jour savoir utiliser cet outil. Il me semble qu'il fait preuve dans ses réponses de volontarisme, remerciant ses interlocuteurs, indiquant chercher par lui même avant de venir reposer de nouvelles questions. À ce titre, il mérite peut-être mieux qu'un simple lien* vers une page de documentation, assez technique, qui moi-même m'a longtemps posé des problèmes de compréhension (mais je fais sans doute partie "du problème").fakbill a écrit :Le pb n'es pas d'être nul en numpy. le pb est de ne pas savoir utiliser UN outil, n'importe lequel, pour ploter ses data.
C'est un truc que tout cadre avec un background scientifique devrait savoir faire.
lire un doc ou un tuto aussi
Nous n'avons pas la même conception de l'apprentissage de l'informatique pour débutants, surtout quand eux-même disent ne pas bien comprendre et je comprends que votre position, que je ne partage pas, soit que l'on apprenne bien l'informatique (uniquement ?) en codant des projets conséquents et en lisant directement la documentation.
La question est légitime et c'est un point de Numpy/Matlab qui pose de nombreux problèmes au début. Il me semble que le lien suivant l'explique bien (plutôt que de simplement "documenter") :Leo11 a écrit :Ben c'est ce que je pense aussi, mais dans ce cas, on a juste une matrice contenant les (xi, yi) et pas deux matrices X et Y non ?
http://fr.mathworks.com/company/newslet ... tions.html
Pour résumer, il est mieux qu'une grille soit explicitement représentée par deux matrices X et Y telles que les coordonnées du point d'indices (i, j) soient (X[i, j], Y[i, j]), et non deux vecteurs x et y dont les coordonnées du point d'indices (i, j) seraient (x, y[j]). Premièrement cela est explicite et évite de nombreux cas de confusion. Ensuite, cela permet de travailler directement sur les matrices (par exemple ajouter X et Y, ce qui serait impossible sinon). Enfin, cela permet des grilles non-régulières.
Comme en général on a plutôt en tête les vecteurs x et y, la fonction meshgrid permet de transformer cette représentation en les matrices complète X et Y. Attention au fait qu'il y a deux manières de lire une grille : la manière matricielle (0, 0) et en haut à gauche et les lignes sont en premier et la manière cartésienne, avec (0, 0) en bas à gauche et les abscisses (donc les colonnes) en premier.
Leo11 a écrit :En fait np*, je pense que tu as raison, je ne saisis pas bien ce qui se passe dans Z =X**2 + Y**2... Je veux bien que tu m'expliques si tu as le temps.
Je pense que tu peux chercher la réponse tout seul, avec un petit exemple, et un papier et un crayon (je vais en faire hurler plus d'un) : X ** 2 est l'opération matricielle point à point, de même '+' va additionner les matrices point à point. Si pout tout (i, j), X[i, j] = i et Y[i, j] = j, que va donc valoir Z ?
* EDIT: je viens de prendre connaissance de la réponse précédente.
Dernière modification par np* le 08 juil. 2016 10:41, modifié 1 fois.
$ P = N\!P^* ? $
Re: Tracer un graphe en 3D en python
Je partage ce point de vue. Un graphe 3D semble inutilement compliqué pour visualiser l'information que tu cherches à montrer. Une carte thermique est probablement plus pertinente.bullquies a écrit :A mon avis tu devrais bien faire une heatmap pour présenter tes résultats.
$ P = N\!P^* ? $
Re: Tracer un graphe en 3D en python
np* : Je n'ai rien contre Leo11 par contre je ne comprends pas comment on peut dire que http://docs.scipy.org/doc/numpy/referen ... hgrid.html "assez technique". De plus, j'ai expliqué le fait que ca faisait une grille...ce que la page de doc donne en exemple.
"un apprenant" : épargne moi ce jargon IUFM à la noix par pitié.
"Nous n'avons pas la même conception de l'apprentissage" (je coupe le reste de ta phrase car c'est vrai en général) : je pense qu'il est bcp plus important de faire comprendre aux étudiants comment trouver l'info plutôt que de la leur donner toute cuite. Je rêve d'un jour où la majorité des questions sur ce forum en info sera du type "j'ai tel problème (exprimé clairement), j'ai lu telles docs et je ne comprends toujours pas ce point".
Si on ne forme pas les gens à cet état d'esprit alors on attend d'eux seulement qu'ils retiennent des formules magique.
Sur le coté un peu rude. Le commentaire n'étonne à chaque fois car non, je ne suis pas rude du tout. Sortez un peu dans la vraie vie pour voir les loups et les hyènes qui traînent partout. La prépa est un environnement ultra protégé. Autant leur donner un tout tout tout peu avant gout de la suite...et puis bon....no fight no fun.
"un apprenant" : épargne moi ce jargon IUFM à la noix par pitié.
"Nous n'avons pas la même conception de l'apprentissage" (je coupe le reste de ta phrase car c'est vrai en général) : je pense qu'il est bcp plus important de faire comprendre aux étudiants comment trouver l'info plutôt que de la leur donner toute cuite. Je rêve d'un jour où la majorité des questions sur ce forum en info sera du type "j'ai tel problème (exprimé clairement), j'ai lu telles docs et je ne comprends toujours pas ce point".
Si on ne forme pas les gens à cet état d'esprit alors on attend d'eux seulement qu'ils retiennent des formules magique.
Sur le coté un peu rude. Le commentaire n'étonne à chaque fois car non, je ne suis pas rude du tout. Sortez un peu dans la vraie vie pour voir les loups et les hyènes qui traînent partout. La prépa est un environnement ultra protégé. Autant leur donner un tout tout tout peu avant gout de la suite...et puis bon....no fight no fun.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Re: Tracer un graphe en 3D en python
et sinon oui, un graphe 2D avec des couleur est souvent mieux qu'un graphe 3D...par contre, faire gaffe au choix des couleurs car l'oeil humain a tendance à mal évaluer les gradients entres couleurs.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.