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

Interfaces Graphiques Discussion :

Exporter l'axe courant en pdf/jpg sans le reste du GUI


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 32
    Par défaut Exporter l'axe courant en pdf/jpg sans le reste du GUI
    Bonsoir à tous,

    J'ai créer une petite application avec GUIDE pour un projet visant à simuler l'évolution de la concentration de deux protéines dans une "ligne" de cellules. Tout marche très bien et j'obtiens de jolis graphiques comme je le souhaite.

    Ce que j'aimerais bien pouvoir faire est d'exporter le graphique sur l'axe courant (le handles.axes1) en .pdf ou en .jpg. J'ai vainement essayé la fonction saveas mais le résultat est pour le moins... désespérant. Je précise que je ne souhaite pas avoir le reste du GUI sur le pdf ou jpg.

    Sur ce, je vous souhaite une bonne nuit!

    N.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 32
    Par défaut
    J'ai trouvé une technique en fait mais qui ne me satisfait qu'à moitié à vrai dire. En effectuant,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    I = getframe(handles.axes1);
    imwrite(I.cdata, 'phasediagramme.png');
    J'obtiens bien le diagramme souhaité dans mon .png.

    Le problème est que du coup je n'ai plus les xlabel,ylabel,title et la numérotation des axes ce qui est très ennuyeux.

    Auriez-vous une idée?

    Merci d'avance,

    N.

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    I = getframe(handles.axes1,get(handles.axes1,'OuterPosition'));
    imwrite(I.cdata, 'phasediagramme.png');

  4. #4
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Pour faire un pdf simplement il faut que tu utilises :


    Bonne chance,


    Michel

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 32
    Par défaut
    Bonsoir,

    Merci de vos réponses. J'ai essayé les deux méthodes mais j'ai un souci pour les deux à vrai dire.

    Dans les deux cas, j'obtiens bien une image contenant l'axe que je souhaite et ce qui l'entoure. Le problème est que je n'obtiens que le coin inférieur gauche du graphe. Comment cela se fait-il?

    Meilleures salutations et merci d'avance,

    N.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 32
    Par défaut
    Bonjour,

    J'ai trouvé une méthode alternative finalement. J'ai crée un uipanel dans lequel j'ai mis mon axes1 dans lequel je fais mes différents plot/pcolor/etc.

    Ensuite, lorsque je souhaite sauvegarder mon image je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    I = getframe(gcf,get(handles.uipanel1,'Position'));
    imwrite(I.cdata, 'diagramme_phase.jpg');
    Problème résolu donc. Merci aux deux personnes m'ayant répondu précédemment!

    N.

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 115
    Par défaut
    Bonjour,

    Je souhaiterais également pouvoir ne sauvegarder que mon plot avec legend et titre mais en utilisant la méthode de DUT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    I=getframe(Maindata.Main_axes,get(Maindata.Main_axes,'OuterPosition'));
    imwrite(I.cdata, 'monplot.png');
    J´obtiens cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Error using capturescreen
    Rectangle width and height must be at least 1 pixel
     
    Error in getframe (line 103)
         x=builtin('capturescreen', varargin{:});
     
    Error in MainWindow>SHOW (line 3201)
    I = getframe(Maindata.Main_axes,get(Maindata.Main_axes,'OuterPosition'));
     
    Error while evaluating uicontrol Callback

    J´ai egalement essaye de creer un uipanel dans lequel se trouve mon axe comme le preconisait weedcat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    I = getframe(gcf,get(Maindata.uipanel1,'Position'));
    imwrite(I.cdata, 'monplot.jpg');
    Mais j´obtiens de nouveau la meme erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Error using capturescreen
    Rectangle width and height must be at least 1 pixel
     
    Error in getframe (line 103)
         x=builtin('capturescreen', varargin{:});
     
    Error in MainWindow>SHOW (line 3209)
    I = getframe(gcf,get(Maindata.uipanel1,'Position'));
     
    Error while evaluating uicontrol Callback
    Est ce que cela à avoir avec la propriété units de mon axe qui au passant est défini sur normalized ?

    PS : Le bouton qui me contient le code pour sauvegarder mon axe se trouve sur la même figure que ce dernier

    Merci!

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Comme le précise la documentation :
    Citation Envoyé par doc getframe
    F = getframe(h,rect) specifies a rectangular area from which to copy the pixmap. rect is relative to the lower left corner of the figure or axes h, in pixel units. rect is a four-element vector in the form [left bottom width height], where width and height define the dimensions of the rectangle.
    Donc avant de prendre la propriété 'Position' de tes objets UIpanel et Axes, assures-toi que leur propriété 'Units' est à 'pixels'.

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

Discussions similaires

  1. afficher image jpg sans les axes gradués
    Par Thib0ult dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 06/05/2015, 14h21
  2. Génération de PDF/JPG avec un client sans GUI
    Par fabrice.Croize dans le forum Images
    Réponses: 1
    Dernier message: 08/11/2009, 21h29
  3. [Info]Exportation automatique de tableau en *.pdf ou *.doc
    Par demifred dans le forum Documents
    Réponses: 3
    Dernier message: 12/08/2005, 08h06
  4. Réponses: 2
    Dernier message: 15/04/2005, 15h51
  5. [Débutant][uml][pdf]Exporter un diagramme Omondo en pdf ?
    Par folsen dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 05/07/2004, 15h40

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