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

Python Discussion :

affichage nuage de points avec pyplot


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Espagne

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mars 2019
    Messages : 16
    Points : 9
    Points
    9
    Par défaut affichage nuage de points avec pyplot
    Bonjour,

    Je souhaite afficher, avec pyplot, un ensemble de points que j'obtiens sous la forme d'une liste 2D :
    [[x1,y1],[x2,y2],[x3,y3],...] oú les xi sont les abscisses et les yi les ordonnées.
    Je n'arrive pas à afficher cet ensemble de point... Dans tous les exemples que j'ai pu lire sur les documentations et forums, les points sont toujours sous la forme : [x1,x2,x3,...],[y1,y2,y3,...] . L'affichage est alors très simple avec pyplot.

    Je cherche une méthode simple pour cet affichage, sans passer par numpy et des transposées de matrice.
    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par Apoplexus Voir le message
    Je cherche une méthode simple pour cet affichage, sans passer par numpy et des transposées de matrice.
    Avec zip:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> L
    [['a', 0], ['b', 1], ['c', 2], ['d', 3]]
    >>> list(zip(*L))
    [('a', 'b', 'c', 'd'), (0, 1, 2, 3)]
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    Salut, un exemple....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    x,y=[],[]
     
    liste=[(0,1),(0,2),(4,5)]
     
    for i in liste:
        xi,yi=map(float,i)
        x.append(xi)
        y.append(yi)
     
    print(x)
    print(y)

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Espagne

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mars 2019
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Avec zip:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> L
    [['a', 0], ['b', 1], ['c', 2], ['d', 3]]
    >>> list(zip(*L))
    [('a', 'b', 'c', 'd'), (0, 1, 2, 3)]
    >>>
    - W
    Formidable !!!
    Merci beaucoup

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Espagne

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mars 2019
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Merci à toi aussi Archimède !
    J'avoue préférer la méthode avec zip, plus élégante

    Merci pour vos réponses

  6. #6
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    De rien, excuse, j'ai lu un peu trop rapidement ton post... Je pensais que tu voulais récupérer les données d'un fichier csv et exploiter un reader pour en tirer deux listes...

    Bonne journée

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Espagne

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mars 2019
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Et pour comprendre, ça signifie quoi "*" devant une liste ?

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par Apoplexus Voir le message
    Et pour comprendre, ça signifie quoi "*" devant une liste ?
    *liste comme argument à l'appel d'une fonction, c'est l'unpacking opposé au packing:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> def f(*args):   # packing
    ...     print(len(args), args)
    ...
    >>> f([1,2,3])
    1 ([1, 2, 3],)
    >>> f(*[1,2,3]) # unpacking
    3 (1, 2, 3)
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Ca veut dire que la fonction zip est appelé ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zip(L[0], L[1], L[2], ..., L[n-1])
    où n est la taille de L. La fonction zip prenant un nombre arbitraire d'argument, et comme vous en avez beaucoup à donner, c'est quand même bien pratique ce * !


    Un exemple pour comprendre :

    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
    def somme1(list_a_sommer):
        s=0
        for elt in list_a_sommer :
            s+=elt
        return s
     
    def somme2(*args): ### Ce *args capture tous le groupe d'argument dans un tuple
        print("Sommons :",args) ### pour comprendre
        s=0
        for elt in args :
            s+=elt
        return s
     
    liste_a_sommer = [1,2,3]
    print(somme1(liste_a_sommer))
    print(somme2(*liste_a_sommer))
    Les 2 codes fonctionnent. Après c'est un choix d'implémentation. L'intéret de la fonction somme2, est que si on a juste une petite somme à faire, comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    somme2(1,2)
    somme2(1,2,3)
    et bien cela fonctionne sans que nous n'ayons besoin de repasser par une liste. Ce que ne permet pas somme1, qui vous oblige à écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    somme1([1,2])
    somme1([1,2,3])

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème d'affichage avec printf
    Par sorari dans le forum C++
    Réponses: 12
    Dernier message: 08/03/2005, 18h30
  2. Réponses: 6
    Dernier message: 19/10/2004, 13h46
  3. Resolution d'affichage avec x11
    Par cosmos38240 dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 06/06/2004, 23h26
  4. Pb affichage avec un PaintBox (pour eviter scintillement)
    Par juan64 dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/04/2004, 09h21
  5. Problème d'affichage avec trace
    Par WriteLN dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2003, 16h59

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