WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

axes aus einem uipanel heraus abspeichern

 

havannalady
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 08.01.08
Wohnort: KA
Version: ---
     Beitrag Verfasst am: 09.01.2008, 09:53     Titel: axes aus einem uipanel heraus abspeichern
  Antworten mit Zitat      
Hallo Leute,
ich habe folgendes Problem. Ich habe in meiner GUI ein uipanel festgelegt. In diesem werden per buttonpress in einem subplot mehrere axes dargestellt. Nun würde ich gern eine bzw. auch alle axes als .png wieder abspeichern. Soweit so gut, es funktioniert einfach nicht, dass ich mir den Inhalt eines uipanels als Grafik abspeichern lassen kann (mit saveas(gca,'...','png') ). Es wird anstelle der axis immer der untere linke Teil des GUI-figure abgespeichert. Dann hab ich versucht mit copyobj die axis in ein neues fenster zu kopieren, aber dann werden zusatzinformationen wie xlabel, ylabel etc. nicht mit übrnommen.
Ich möchte ungern das gesamte figure abspeichern und dann manuell die axes ausschneiden. Kann mir jemand helfen?

VLG!!
Private Nachricht senden Benutzer-Profile anzeigen


Michaela
Forum-Century

Forum-Century


Beiträge: 239
Anmeldedatum: 12.07.07
Wohnort: ---
Version: bis 2007b
     Beitrag Verfasst am: 09.01.2008, 13:02     Titel:
  Antworten mit Zitat      
Hallo,

wie versuchst DU denn das Abspeichern? Direkt mit saveas(gca.?)


eventuell hat sich der Wert von gca ja mittlerweile geändert? Vielleicht (kann leider nicht testen) hilft es, wenn Du direkt nach Erstellung der einzelnen subplots das gca handle in eine eigene Variable schreibst, zum "Merken"

also ungefähr so

Code:

.
.
.
plot(x,y)
my_gca_plot1 = get(gca);  %oder nur gca? bin mir nicht sicher...
.
.
.
saveas(my_gca_plot1,....)

 

_________________

---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
Private Nachricht senden Benutzer-Profile anzeigen
 
havannalady
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 08.01.08
Wohnort: KA
Version: ---
     Beitrag Verfasst am: 09.01.2008, 14:22     Titel:
  Antworten mit Zitat      
hmm, das hatte ich schon probiert. Ich hab direkt nach der subplot-anzeige der axis den saveas befehl ausgeführt. ich hab auch die axis extra mit ner variablen belegt, um die eigenschaften zu speichern. Aber er speichert dennoch nur die linke untere ecke von der GUI-figure ab. Aaaargh!
Private Nachricht senden Benutzer-Profile anzeigen
 
Willa
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 80
Anmeldedatum: 23.05.08
Wohnort: Bremen
Version: Willa v1.0
     Beitrag Verfasst am: 06.07.2008, 23:33     Titel:
  Antworten mit Zitat      
Hallo!
Ich habe grad genau das gleiche Problem.... Gibts es jemanden der eine Lösung weiss...?
Ich habe auch ein GUI mit einer axes1. Darin wird per "imagesc(BLA)" etwas gezeichnet. Wenn ich nun saveas (gca....) oder saveas (handles.fugure1...) versuche das ganze zu speichern wir nur die linke untere Ecke des GUIs gespeichert.....
Vielleicht kann jemand helfen?
Vielen Dank und viele Grüße,
William
Private Nachricht senden Benutzer-Profile anzeigen
 
havannalady
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 08.01.08
Wohnort: KA
Version: ---
     Beitrag Verfasst am: 07.07.2008, 17:42     Titel:
  Antworten mit Zitat      
hey, ich glaub ich hab ne ganz passable lösung gefunden:

ax = findobj('TYPE','axes');

f = figure('units','pixels','POSITION',[0 100 800 600]);
oldunit = get(ax,'Units');
set(ax,'UNITS','normalized');
c = copyobj(ax,f);
set(c,'POSITION',[0.1 0.1 0.8 0.8]);
set(ax,'UNITS',oldunit)

ich suche in meiner GUI die Axis, generiere ein neues Figure, setze sicherheitshalber mal die Einheiten der Axis auf normalized. Dann kopier ich mit copyobj die Axis in die neue figure. Meine Axis hat dann im Figure die Größe [.1 .1 .8 .8]. Dann setz ich die Einheiten wieder zurück. Ob das bei deiner Anwendung wichtig ist, weiß ich nicht, ich habs mal nur aus meinem Code rauskopiert. Dann kannst du die figure entsprechend abspeichern...
Wenn du noch Fragen hast, sag Bescheid!!
_________________

VG!
Private Nachricht senden Benutzer-Profile anzeigen
 
Willa
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 80
Anmeldedatum: 23.05.08
Wohnort: Bremen
Version: Willa v1.0
     Beitrag Verfasst am: 08.07.2008, 00:02     Titel:
  Antworten mit Zitat      
Cool, vielen Dank das funktioniert Very Happy
Viele Grüße,
William
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.