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 :

Probleme pyplot filesave


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2012
    Messages : 12
    Par défaut Probleme pyplot filesave
    Bonjour,

    j'essaye enregistrer des courbes en pdf. sans les afficher

    Si je ne mets pas la ligne 19: plt.show(), ça crée le fichier1 mais juste la courbe et le programme plante :
    PermissionError: [Errno 13] Permission denied: 'C:\\Users\\Admin\\.matplotlib\\fontList.py3k.cache'
    Si je mets la ligne 19 : plt.show(), tous les fichiers sont correctement crées mais je dois fermer manuellement les fenêtres de graphique pour que le programme s'exécute complètement (normal) ce que je souhaite éviter.

    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
    import matplotlib.pyplot as plt
     
    #bigT=[titre1, [abscisse 1],[ ordonnée1],titre2, [abscisse 2],[ ordonnée2]]  tableau contenant les données des graphiques
    BigT=['RED-G-75139  Body Die 7-08 Remington', ['01/01/2017', '03/01/2018', '09/05/2018', '15/06/2018', '20/09/2018', '11/10/2018', '18/10/2019', '14/11/2019', '10/03/2020', '14/04/2020', '19/05/2020', '30/07/2020', '08/12/2020'], [2, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0], 'RED-G-75153  Body Die .300 Win. Mag.', ['01/01/2017', '18/01/2017', '17/02/2017', '04/01/2019', '20/02/2019', '05/05/2020', '30/07/2020', '14/08/2020', '25/11/2020'], [1, 0, 1, 0, 1, 0, 1, 0, 1]]
     
    nbre_de_courbe=int(len(BigT)/3)
    for x in range(1,nbre_de_courbe+1):
        plt.figure(figsize=(20,6))
        abscisse=[]
        for y in range(0,len(BigT[x*3-2])):
            abscisse.append(y)
        plt.plot(abscisse,BigT[x*3-1],"r",linewidth=1)
        plt.xticks(fontsize = 8, rotation=45)
        plt.xticks(abscisse,BigT[x*3-2])
        plt.title(BigT[x*3-3])
        plt.grid(linewidth=0.5)                     # grille et son épaisseur
        fig1 = plt.gcf()
     
        plt.show()
     
        nomfichier="fichier"+str(x)+".pdf"
        fig1.savefig(nomfichier)
    Quelqu'un a-t-il une idée ?

    merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 740
    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 740
    Par défaut
    Salut,

    Citation Envoyé par ikik38 Voir le message
    Quelqu'un a-t-il une idée ?
    C'est une erreur qui vient (probablement) de votre environnement (pas forcément du code exécuté).
    Cherchez un peu sur Internet les discussions qui sont associé à votre message d'erreur et trouvez celles qui s'applique à votre cas.

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

  3. #3
    Membre Expert

    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
    Par défaut
    Si c'est juste de fermer la figure à la main qui vous dérange, vous pouvez aussi la faire fermer par le programme, en ajoutant tout simplement à la fin de votre boucle :


  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Par défaut
    Bonjour,

    Le problème ne vient pas du code. Je l'ai exécuté sur ma machine sans problème même sans le plt.show() et du coup pas besoin du plt.close(fig1)

  5. #5
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2012
    Messages : 12
    Par défaut
    Citation Envoyé par lg_53 Voir le message
    Si c'est juste de fermer la figure à la main qui vous dérange, vous pouvez aussi la faire fermer par le programme, en ajoutant tout simplement à la fin de votre boucle :

    Bonjour,

    J'avais bien essayé plt.close(fig1)) ou plt.close(all)) mais, ca ne ferme pas la fenetre.

    Le problème ne vient pas du code. Je l'ai exécuté sur ma machine sans problème même sans le plt.show() et du coup pas besoin du plt.close(fig1)
    Je n'avais pas encore lu la reponse de Fifan31.
    Tu le lances dans un IDE ?

    merci pour les reponses

  6. #6
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    J'enlève la ligne 19 (sinon, il faut fermer la fenêtre manuellement) et je mets plt.close() dans la boucle à l'intérieur de celle-ci.
    All good !

  7. #7
    Membre Expert

    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
    Par défaut
    Citation Envoyé par ikik38 Voir le message
    Bonjour,

    J'avais bien essayé plt.close(fig1)) ou plt.close(all)) mais, ca ne ferme pas la fenetre.
    Si si ca ferme bien la fenetre. Et comme le dit marco, il faut que cette instruction soit dans la boucle !

  8. #8
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2012
    Messages : 12
    Par défaut
    Citation Envoyé par lg_53 Voir le message
    Si si ca ferme bien la fenetre. Et comme le dit marco, il faut que cette instruction soit dans la boucle !
    quand je mets plt.close() avec ou sans plt.show() avant ou apres plt.savefile(fig1), j'ai toujours le meme message d'erreur.

    Ca doit venir de mon IDE

Discussions similaires

  1. Probleme de rafraichissement d'un BDGrid
    Par marmotte dans le forum Bases de données
    Réponses: 10
    Dernier message: 28/05/2004, 18h07
  2. Réponses: 2
    Dernier message: 30/05/2002, 08h54
  3. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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