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 :

Adaptation des axes pour les graphiques Python - Matplotlib


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Par défaut Adaptation des axes pour les graphiques Python - Matplotlib
    Bonjour,

    Je suis actuellement en train de coder sur PYTHON (2.7) et j'ai un problème au niveau de l'utilisation de MATPLOTLIB qui ne me semble pas résolu sur le forum.
    Mon code consiste à calculer une température toute une journée pour des pas de temps de 10s. J'ai ainsi 8635 mesures que je doit tracer et qui fonctionne bien dont voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        plt.figure(2)
        plt.title('Graphique1')
        plt.plot(Time,Températures,'r', label='Température')
        xlabel('temps[s]')
        ylabel('Temperature [deg_C]')
        plt.legend()
        plt.savefig("graphique1")
    Cependant je souhaite adapter l'échelle des abscisses (le temps) et le mettre en heures.
    J'ai déjà tenter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        plt.xticks(Time,['0', '3', '6', '9', '12', '15'])
    Le résultat est qu'il trace cette liste sur les 8635 pas de temps: illisible.
    Sinon j'ai essayer d'adapter l'axe déjà existant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       plt.xticks(arange(7), ["0h", "2h", "4h", "6h", "9h", "12h", "15h"], fontsize=16)
    Sans succès, les étiquettes s'affichent bien mais elles s’agglutine à gauche de l'axe des abscisses et non de façon répartie !

    Avez-vous déjà eu ce problème?
    Si oui comment avez-vous procédez?

    Merci du temps accordé

    Paul

  2. #2
    Membre émérite
    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
    Par défaut
    Salut.
    Modifier les ticks est une bonne piste.
    Tu peux aussi convertir le nombre de secondes en un timedelta, et l'ajouter à une date de référence. Le tracé se fait avec pyplot.plot_date, et l'affichage peut utiliser la méthode autofmt_xdate.
    L'inconvénient est qu'il faut fixer une date de référence, mais comme l'affichage est seulement sur 24h, elle n'a pas d'importance.

    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
    from datetime import datetime, timedelta
    import matplotlib.dates as mdates
    import matplotlib.pyplot as plt
     
    def main():
        ts = list(range(0, 24 * 3600, 10))
        t0 = datetime(2014, 1, 1)
        t_p = [timedelta(seconds=t) + t0 for t in ts]
     
        fig, ax = plt.subplots()
        fig.autofmt_xdate()
        ax.plot_date( t_p, ts)
        plt.show()
     
    if __name__ == '__main__':
        main()
    Edit : sinon avec xticks
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        t2 = list(range(0, 24 * 3600, 3 * 3600))
        plt.xticks(t2, ["0h", "3h", "6h", "9h", "12h", "15h", "18h", "21h", "24h"])

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Par défaut
    Salut

    Merci pour la réponse __dardanos__ !
    J'ai utilisé ta deuxième méthode qui me semblait plus simple par rapport à mon niveau.
    Cela fonctionne parfaitement !
    En espérant que cela peut aider d'autres personnes.
    Merci du coup de main !

    Au plaisir

    Paul

  4. #4
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    Comment as-tu fais pour installer Matplotlib ?

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par Kurodiam Voir le message
    Comment as-tu fais pour installer Matplotlib ?
    Au choix:
    1. il a eu de la chance,
    2. il a suivit les instructions du manuel d'installation,
    3. quelqu'un a fait le boulot pour lui.
    4. autres solutions.


    De toutes façons, si vous avez des soucis pour installer "matplotlib", c'est que vous espérez qu'"autres solutions" s'applique à vous.
    Pourquoi ne pas ouvrir un nouveau topic en racontant les soucis que vous rencontrez? Ce serait plus efficace.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    @wiztricks , votre raisonnement est très carré mais je pense pas que la personne concernée a eu juste besoin de chance vu les spécificités apportées par ce module ...
    Pour l'instant , je m'abstiens de trop réfléchir à matplotlib , j'ai d'autres choses à bricoler

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/04/2015, 19h30
  2. Mettre les types des axes d'un graphique
    Par ToTo13 dans le forum Excel
    Réponses: 11
    Dernier message: 12/11/2008, 13h05
  3. Ajouter un second axe pour les abscisses sur un graphique
    Par developpeur82 dans le forum MATLAB
    Réponses: 4
    Dernier message: 02/04/2007, 15h22
  4. [debutant][JNI]Stocker des objet pour les rappeler plus tard
    Par Celenor dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 28/03/2004, 01h28

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