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

Titel fehlt beim Speichern der Grafik in einer GUI

 

JaSoIstEs
Forum-Guru

Forum-Guru


Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
     Beitrag Verfasst am: 20.08.2015, 11:41     Titel: Titel fehlt beim Speichern der Grafik in einer GUI
  Antworten mit Zitat      
Hallo,

habe mal wieder ein kleines Problem.

Ich habe eine "Save Graph" Button in meiner GUI, dieser Button speichert mir die Grafik (Axes) die dort vorhanden ist.

Das Speichern funktioniert auch ohne Probleme nur wird der Titel nicht mit gespeichert.

Der Code zu diesem "Save Graph" Button:

Code:

function [] = SaveGraphButton()


data            = get(gcf,'UserData');
guiHandle = findobj(0,'name','Brushless DC Machine: Plot Results');
handles = guidata(guiHandle);
FindAxes = handles.axes1;

f = figure('visible','off');
f_copy = axes;
copyobj(allchild(FindAxes),f_copy);
colorbar
grid on
[filename,pathname] = uiputfile({'*.jpg;*.tif;*.png;*.gif;*.fig','All Image Files';...
    '*.*','All Files' },'Save Image');
saveas(f,[pathname,filename],'jpg');
close(figure)
 


Im Anhang findet ihr auch ein Screenshot der GUI und das gespeicherte Bild.

(Vielleicht kann mir bitte auch jemand erklären warum sich das Farbschema ändert)

Ich danke euch im Voraus.

Gespeicherte_Grafik.jpg
 Beschreibung:

Download
 Dateiname:  Gespeicherte_Grafik.jpg
 Dateigröße:  53.22 KB
 Heruntergeladen:  333 mal
GUI_Mit_Grafik.PNG
 Beschreibung:

Download
 Dateiname:  GUI_Mit_Grafik.PNG
 Dateigröße:  132.57 KB
 Heruntergeladen:  297 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.08.2015, 13:24     Titel:
  Antworten mit Zitat      
Hallo,

lass dir doch mal die zweite Figure anzeigen, damit du siehst, ob das Problem beim Speichern oder beim Kopieren ist.

Ich würde mal vermuten, dass der Titel in der Figure aufgehängt ist, nicht in dem Koordinatensystem, und damit nicht mitkopiert wird. Was spricht dagegen, den Titel "manuell" nachzutragen?

Warum sich die Colormap ändert, ist mir nicht klar. Auch hier siehe die Empfehlung am Anfang. Und auch hier sollte sich das nachträglich anpassen lassen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
JaSoIstEs
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
     Beitrag Verfasst am: 21.08.2015, 13:55     Titel:
  Antworten mit Zitat      
Hallo,

danke für die schnelle Antwort.

Also in der Figure (Kopie) fehlt der Titel, so wie die Beschriftung der X und Y-Achse.

Wie in der Angehängten Grafik (erster Post) (GUI) zu sehen ist, habe ich für jede Größe eine "Checkbox", sobald eine Checkbox ausgewählt ist wird der dazu gehörige Code (Plot) ausgeführt.
Sprich ich trage ja für jeden plot Titel und co. "manuell" ein.

Beispiel eines Plot-Codes:

Code:

if EfficiencyZ
    plot(NDEMary, TDEMary, 'y', 'LineWidth', 4)
    xlabel('Speed in rpm.')
    ylabel('Torque in Nm')
    if GridOnOff
        grid on
    else
        grid off
    end
    hold on
    if isempty(ContourLines)
        contourf(rot90(SpeedColumn), rot90(TorqueRow), rot90(EfficiencyMTX),100,'LineColor','none');
    else
        contourf(rot90(SpeedColumn), rot90(TorqueRow), rot90(EfficiencyMTX),...
            ContourLines,'LineColor','none');
    end
    title('Efficiency Contour (in %)')
    colorbar;   datacursormode on;
    hold off
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
JaSoIstEs
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
     Beitrag Verfasst am: 21.08.2015, 14:17     Titel:
  Antworten mit Zitat      
Hallo,

habe es hinbekommen.

Code:

function [] = SaveGraphButton()


data            = get(gcf,'UserData');
guiHandle = findobj(0,'name','Brushless DC Machine: Plot Results');
handles = guidata(guiHandle);
FindAxes = handles.axes1;
TitleCopy = get(gca, 'Title');
TitleString = get(TitleCopy,'String');
XlabelCopy = get(gca,'xlabel');
XlabelString = get(XlabelCopy,'String');
YlabelCopy = get(gca,'ylabel');
YlabelString = get(YlabelCopy,'String');


f = figure('visible','off');
f_copy = axes;
copyobj(allchild(FindAxes),f_copy);
title(TitleString);
xlabel(XlabelString);
ylabel(YlabelString),

colorbar
grid on
[filename,pathname] = uiputfile({'*.jpg;*.tif;*.png;*.gif;*.fig','All Image Files';...
    '*.*','All Files' },'Save Image');
saveas(f,[pathname,filename],'jpg');
close(figure)
 


Vielleicht gibt es ja eine elegantere Lösung.


Edit:

Jetzt funktioniert das zwar, aber wenn ich jetzt vom einen Plot in den anderen springe, kapiert er das nicht ganz mit der "colorbar", sprich er behält die Skalierung des vorherigen Plots. Erst wenn ich das zweite mal dann auf Plot drücke dann wird mir die richtige "colorbar" angezeigt....


Edit (2):

Sorry, mein Fehler.... hatte ein "hold off" auskommentiert.... Ursache für das obige Problem.

Edit (3):

Und für das Problem mit der sich verändernden colormap:

Code:


in diesem Fall ist "jet" das von mir gewünschte Farbschema.
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.