IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

Obtention de Graphe en 3D à partir de deux tableaux Nx1 et d'un tableau NxN


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    étudiant
    Inscrit en
    Octobre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Obtention de Graphe en 3D à partir de deux tableaux Nx1 et d'un tableau NxN
    Bonjour,
    je me demandais si il était possible d'obtenir un graphe 3D à partir de deux tableaux Nx1 et dun tableau NxN.
    Je précise, j'ai deux variables L et H en abscisse telles que L=np.linspace(0,1,N) et H=np.linspace(1,2,N) et ma troisième variable Z est celle de l'ordonnée
    qui est un tableau numpy NxN remplie de valeur aléatoire.

    Cependant lorsque je veux lancer le programme, on me dit que Z doit avoir la même taille que L et H. Je ne comprends pas car théoriquement pour chaque valeur de H j'ai N valeurs de Z qui se répartissent au dessus des points d'intersections de la droite H et des droites L[i] pour i variant de 0 à N-1.
    Ainsi j'ai donc bien NxN valeurs de Z qui se répartissent au dessus des points d'intersections des H[i] et L[j] pour i et j variant de 0 à N-1.

    L'autre option aurait été de faire N graphes où je fixe H et faire varier L mais cela ne serait pas très commode à présenter. La question serait alors : est-ce qu'il existe une fonction python qui permette de juxtaposer N graphes sur un graphe 3d ? Car je n'en ai pas trouvé

    Merci


    cosupoka

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Points : 692
    Points
    692
    Par défaut
    Salut.
    Cependant lorsque je veux lancer le programme, on me dit que Z doit avoir la même taille que L et H.
    Il faut générer la grille formée par L et H avec numpy.meshgrid par exemple. Un petit exemple ici.
    C'est la solution qui me semble la plus simple.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    étudiant
    Inscrit en
    Octobre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup !

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    étudiant
    Inscrit en
    Octobre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Re-bonjour,
    j'arrive à un problème avec meshgrid, apparemment il faut que ma troisième grandeur ( celle qui ne participe pas au mappage ) dépende des deux autres or ce n'est pas le cas. En fait le but de mon code est d'afficher une grandeur mesurée qui varie en fonction de deux autres valeurs que je fait varier. Cependant je ne connais pas l'équation qui relie mes trois grandeurs.. voilà mon code :


    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    from __future__ import division
    from scipy import *
    from pylab import * 
    from mpl_toolkits.mplot3d import Axes3D
    import random
     
    fig = plt.figure()
    ax = fig.gca(projection='3d')
     
     
     
    xlin = linspace(50,80,500)
    ylin = linspace(85,105,20)
    X, Y = meshgrid(xlin, ylin)
    Z= np.zeros(shape=(20,20))
    i=0
    while i<20 :
    	j=0
    	while j<20 : 
    		Z[i][j]= random.randint(5,200)
    		j=j+1
    	i=i+1
     
     
    surf = ax.plot_surface(X, Y, Z(X,Y,0),color='r')
     
    xlabel(ur"$x$", fontsize=16)         
    ylabel(ur"$z$", fontsize=16) 
    yticks( arange(2), (ur"$0$", ur"$a$"), fontsize=16)
     
    show()
    Cordialement cosupoka

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Points : 692
    Points
    692
    Par défaut
    j'arrive à un problème avec meshgrid, apparemment il faut que ma troisième grandeur ( celle qui ne participe pas au mappage ) dépende des deux autres or ce n'est pas le cas. En fait le but de mon code est d'afficher une grandeur mesurée qui varie en fonction de deux autres valeurs que je fait varier. Cependant je ne connais pas l'équation qui relie mes trois grandeurs..
    Oui… bon… je ne comprends pas vraiment ce que tu veux faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
     
    nx, ny = 500, 20
    xlin = np.linspace(50, 80, nx)
    ylin = np.linspace(85, 105, ny)
    X, Y = np.meshgrid(xlin, ylin)
    Z = np.random.random_integers(5, 200, nx * ny).reshape((ny, nx))
     
    fig = plt.figure()
    ax = fig.gca(projection='3d')
    surf = ax.plot_surface(X, Y, Z)
    ...
    Matplotlib est limitée pour faire de la 3D. Et encore plus si tu veux faire des animations. D'autres bibliothèques seront sûrement mieux adaptées (Vispy, Maya., …)

Discussions similaires

  1. Tableau associatif à partir de deux tableaux
    Par faitor1 dans le forum Langage
    Réponses: 2
    Dernier message: 05/09/2014, 14h44
  2. Création indicatrice à partir de deux tableaux
    Par Ineedi2 dans le forum SAS Base
    Réponses: 3
    Dernier message: 23/05/2014, 11h02
  3. [XL-2010] Obtention d'un resultat a partir de deux critères
    Par janakka-horus dans le forum Excel
    Réponses: 4
    Dernier message: 20/12/2013, 16h23
  4. Remplir un hash à partir de deux tableaux
    Par USMC666 dans le forum Langage
    Réponses: 11
    Dernier message: 21/10/2013, 09h36
  5. Réponses: 54
    Dernier message: 16/03/2006, 11h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo