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

Calcul scientifique Python Discussion :

matplotlib comment règler le débord de la fenêtre


Sujet :

Calcul scientifique Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut matplotlib comment règler le débord de la fenêtre
    Bonjour,

    J'utilise matplotlib.
    L'axe des X correspond à des dates que j'affiche verticalement (enfin, disons avec un angle de 75°).
    Selon le poste où je fais tourner le programme, je vois la date entière (mais de mémoire, j'ai due ajuster la taille des caractères pour pouvoir la voir en entier) ou pas (sur un poste par exemple, je ne vois que l'année, pas les jour / mois).
    Bref, y a t il un moyen pour que la fenêtre s'agrandisse automatiquement ou pour pouvoir imposer un débord en bas
    Dans l'image jointe, on voit par exemple que la date tient tout juste dans la fenêtre. Comment avoir plus de marge ?

    Merci d'avance pour vos réponses.

    Nom : plot.png
Affichages : 1172
Taille : 80,0 Ko
    Edit : bon, on ne voit pas vraiment car fond blanc sur fond blanc, mais vous pouvez imaginer : en bas, le bord de la fenêtre frôle la date.

  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,
    On ne sait pas comment les courbes ont été obtenues.
    Un Figure a une méthode autofmt_xdate qui gère tout seul ce problème.
    Si le problème persiste, l'attribut bottom permet d'imposer sa marge.

  3. #3
    Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Désolé d'une question qui doit être stupide mais je commence seulement sur matplotlib : l'attribut bottom, je l'attribue à quoi ?

    Voilà la procédure qui fait le graphe (au passage, n'hésitez pas à critiquer car pareil, je l'ai fait à partir de plusieurs exemples trouvés sur le net et en faisant plein d'essais sans toujours 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    def graph_mesures_capteurs(dates1,vals1, dates2, vals2, NOM_FICHIER_PNG):
    #-----------------------------------------------------------#
    #     Dessine les courbes pour 2 capteurs de températures.  #
    #     un intérieur et un extérieur                          #
    #-----------------------------------------------------------#
     
        DernierText=vals2[0]
        DernierTint=vals1[0]
        DernierDate=dates1[0]
        print DernierDate.strftime("%d-%m-%Y %H:%M:%S")
     
        font = {'family' : 'serif',
                'color'  : 'darkred',
                'weight' : 'normal',
                'size'   : 16,
                }
     
        ax1=plt.subplot(2,1,2)
        plt.plot(dates1, vals1, '-', label="t int")
     
        plt.ylabel(u'Température int', fontdict=font)    # le u pour pouvoir utiliser des accents (unicode)
        ax1.grid(True)
        ax1.xaxis.set_major_locator( DayLocator() )
        ax1.xaxis.set_minor_locator( HourLocator(arange(0,25,1)) )
        ax1.xaxis.set_major_formatter( DateFormatter('%d-%m-%Y') )
        plt.xticks(rotation=50)
        plt.setp( ax1.get_xticklabels(), fontsize=8)
     
        ax2=plt.subplot(2,1,1,sharex=ax1)    
        plt.plot(dates2, vals2, '-', label="t ext")
        legend=ax1.legend(loc='upper left',shadow=True,fontsize='medium')
        titre=DernierDate.strftime("%d-%m-%Y %H:%M")+'   t. ext : %.2f'%DernierText+'   t. int : %.2f'%DernierTint
        plt.title(titre, fontdict=font)
        plt.ylabel(u'Température ext', fontdict=font)    # le u pour pouvoir utiliser des accents (unicode)
     
        ax2.grid(True)
        ax2.xaxis.set_major_locator( DayLocator() )
        ax2.xaxis.set_minor_locator( HourLocator(arange(0,25,1)) )
        #ax2.xaxis.set_major_formatter( DateFormatter('%d-%m-%Y') )
     
        #plt.xticks(rotation=50)
        plt.setp( ax2.get_xticklabels(), visible=False)    
        plt.savefig(NOM_FICHIER_PNG,dpi = (100))
        print DernierTint
        print DernierText
        #plt.show()
        plt.close('all')

  4. #4
    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
    La rotation des étiquettes est faite à la main d'où le problème. Voici un petit exemple :
    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
    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
     
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    import matplotlib.dates as mdates
     
    np_rec_array = mpl.mlab.csv2rec('temp_top10.csv', delimiter=';')
    np_rec_array.sort() # in-place sort
    x = np_rec_array.date
    y = np_rec_array.conso
     
    fig = plt.figure()
     
    ax = fig.add_subplot(211)
    ax.plot_date(x, y, 'o-', color='g')
     
    ax2 = fig.add_subplot(212)
    ax2.plot_date(x, y, 'o-', color='b')
     
    fig.autofmt_xdate(bottom=0.5)
    plt.show()
    Nom : Capture du 2015-04-12 22:34:13.png
Affichages : 1047
Taille : 57,2 Ko

  5. #5
    Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    J'ai fais un copier coller de ton code à l'intérieur de ma procédure. Ca marche !
    Reste à affiner la présentation :
    avoir une ligne fine et non une série de point
    faire afficher la date en format français
    Mettre un titre en haut
    mettre la légende à gauche de chaque graphe.
    En croisant mon ancien code avec le nouveau, ça devrait le faire. Merci !
    Nom : plot.png
Affichages : 1111
Taille : 72,1 Ko

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/10/2010, 11h30
  2. Comment régler la hauteur d'un type text?
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 15/08/2005, 21h38
  3. Comment afficher un MessageBox depuis une fenêtre réduite ?
    Par cyberma dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/07/2005, 18h16
  4. Réponses: 4
    Dernier message: 25/07/2005, 14h24
  5. [CSS]Comment etirer une background selon la fenêtre
    Par Drannor dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 20/05/2005, 14h06

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