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 :

Utilisation de Matplotlib


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Etu
    Inscrit en
    Novembre 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Etu

    Informations forums :
    Inscription : Novembre 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Utilisation de Matplotlib
    Bonjour,

    J'aimerais pouvoir faire un graphique sous langage Python en utilisant Matplotlib/pyplot.
    Je dispose d'un fichier .txt où sont rangées mes données en colonne (2 colonnes, la première étant du texte, et la seconde étant des entiers (des dix-milliers)).
    Ainsi, j'aimerais pouvoir faire ce graphique (points reliés) tel que l'abscisse soit mon texte (les jours de la semaine) et les ordonnées mes données (litres d'eau).
    Je dois aussi faire apparaître une autre courbe sur ce graphique, sans importation de fichier, comment puis-je le faire ?

    Voici mes données, telle qu'elles sont dans mon .txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    lundi 70000
    mardi 75000
    mercredi 72500
    jeudi 45600
    vendredi 65000
    samedi 89000
    dimanche 12000


    J'ai essayé cela mais ça ne fonctionne pas .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import matplotlib.pyplot as plt
    import numpy as np
    plt.title("Water in a week")
    x,y = np.loadtxt("Week1_water.txt", delimiter=' ', dtype=([('Day', np.str_), ('Water', np.int)]), unpack=True)
    plt.xlabel('Day')
    plt.ylabel('Water')
    plt.show()

    Merci pour le temps consacré et bonne journée.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 654
    Points : 1 150
    Points
    1 150
    Par défaut
    Salut,

    Pensez à ajouter le message d'erreur obtenu. Plus compréhensible que "ça ne fonctionne pas".

    Si vous essayez d'afficher le résultat de np.loadtxt() vous verrez que numpy a mal géré le texte. Vous pourriez lire le contenu du fichier ligne à ligne à l'ancienne, ou vous pourriez aussi essayer pandas (ok c'est un bazooka pour tuer une mouche, mais j'aime bien pandas!):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # -*- coding:Utf-8 -*-
    import pandas as pd
     
    # Import data
    data = pd.read_table('Week1_water.txt', sep=' ', header=None, names=['Day', 'Water'])
    On peut aussi directement faire un graph avec pandas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # -*- coding:Utf-8 -*-
    import matplotlib.pyplot as plt
    import pandas as pd
     
    # Import data
    data = pd.read_table('Week1_water.txt', sep=' ', header=None, names=['Day', 'Water'])
    data.plot(x='Day', y='Water', kind='line', title='Water in a week')
     
    plt.show()
    Ou alors avec Matplotlib directement, mais il faut faire attention à la gestion de l’abscisse. Il faut tracer en fonction d'une valeur numérique comme le numéro du jour de la semaine, puis changer les "ticks":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # -*- coding:Utf-8 -*-
    import matplotlib.pyplot as plt
     
    # Import data
    data = pd.read_table('Week1_water.txt', sep=' ', header=None, names=['Day', 'Water'])
     
    plt.plot(data.index.values, data.Water.values)
    plt.xticks(data.index.values, data.Day.values)
    plt.xlabel('Day')
    plt.ylabel('Water')
     
    plt.title('Water in a week')
     
    plt.show()
    Voilà.

    J

Discussions similaires

  1. [Python 3.X] Projet puissance 4 utilisant uniquement numpy et matplotlib
    Par rmrm75 dans le forum Général Python
    Réponses: 5
    Dernier message: 03/01/2016, 14h41
  2. pyinstaller ou cxfreeze pur utiliser numpy/scipy/matplotlib ?
    Par membreComplexe12 dans le forum Général Python
    Réponses: 3
    Dernier message: 25/12/2014, 16h33
  3. utilisation de modules de matplotlib
    Par awalter1 dans le forum GTK+ avec Python
    Réponses: 3
    Dernier message: 21/02/2011, 18h31
  4. utilisation de matplotlib.pyplot avec GTK
    Par awalter1 dans le forum GTK+ avec Python
    Réponses: 0
    Dernier message: 24/08/2010, 15h16
  5. Liaison Série & utilisation de Matplotlib
    Par perchman dans le forum Général Python
    Réponses: 3
    Dernier message: 01/02/2007, 15h12

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