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

Figure Axes Handle Problem mit textbox als Titel

 

nikky
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 11.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2012, 16:14     Titel: Figure Axes Handle Problem mit textbox als Titel
  Antworten mit Zitat      
Hallo,

ich würde gerne in einer Schleife Plotten hierfür habe ich folgenden Code.

Code:

if k==1
  h1=figure(1);
  h2=figure(2);
 end
               
figure(h1)
ha(k)=subplot(3,2,k);
plot(f,Pxx);
xlim([0 600]);
xlabel('Frequenz [Hz]');
ylabel('Leistungsspektrum [W/Hz]');
hold on
...
hold off

figure(h2);
ha2(k)=subplot(3,2,k);
plot(rmsSignal(:,k));
hold on
plot(interpRMS(:,k),'r-');
legend(legendListRms(k,:));
linkaxes(ha2,'x');
hold off

 


Problem ist, dass ich einen Titel in beiden Plots einfügen möchte,
hierzu hat mir jan in einem anderen Thread auch schon Hilfestellung gegeben.
Code:

prinzipiell geht das mit
%                 BackgroundAxes = axes('visible', 'off', 'units', 'normalized', 'Position', [0,0,1,1]);
%                 text(0.5, 0.99, titleList(n), 'Parent', BackgroundAxes , 'HorizontalAlignment','center','VerticalAlignment','top');
 


sowie ich das verstehe ist BackgroundAxes dann mein axes_handle?
aber wenn ich diesen in plot bzw subplot einfüge bekomme ich eine error Meldung.
Error using subplot (line 221)
Requires valid axes handle for input.
Demnach scheint das ja nicht mein Axes Handle zu sein? Was mache ich denn falsch?
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 14.06.2012, 17:15     Titel: Re: Figure Axes Handle Problem mit textbox als Titel
  Antworten mit Zitat      
Hallo nikky,

Was genau bedeutet dies:
Zitat:
aber wenn ich diesen in plot bzw subplot einfüge

?
Zu welcher Code-Zeile erscheint die Fehlermeldung?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
nikky
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 11.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2012, 17:19     Titel:
  Antworten mit Zitat      
damit meine ich z.b. plot(BackgroundAxes,f,Pxx) bzw subplot(BackgroundAxes,3,2,k);

Fehlermeldung tritt auf wenn ich einen AxesHandle einfüge.
Ist das ein Problem mit den figures die ich erzeuge?
Private Nachricht senden Benutzer-Profile anzeigen
 
nikky
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 11.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.06.2012, 19:23     Titel:
  Antworten mit Zitat      
Ich verstehe immernoch nicht wie ich das Problem lösen kann

ich kann zwar eine Figure erstellen mit Titel, allerdings weiß ich nicht wie ich subplot darauf anwenden kann, entweder wird die figure dann überschrieben und neu befüllt oder es öffnet sich eine 3te.

z.b. ich erstelle figure mit titel und sobald ich subplot anwende wird diese figure genutzt und überschrieben d.h. meine subplots erscheinen zwar aber der titel verschwindet.

wenn ich jetzt zunächst ein objekt erstelle mit

Code:

   %                 BackgroundAxes = axes('visible', 'off', 'units', 'normalized', 'Position', [0,0,1,1]);
            %                 text(0.5, 0.99, titleList(n), 'Parent', BackgroundAxes , 'HorizontalAlignment','center','VerticalAlignment','top');
 


dachte ich das ich anschließen dieses objekt meinem Subplot zuweisen soll in der Form
subplot(BackgroundAxes,3,2,k);
das funktioniert aber nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 20.06.2012, 14:36     Titel:
  Antworten mit Zitat      
Hallo nikky,

Und ich verstehe das Problem immer noch nicht. Der gepostete Code erzeugt gar nichts, da er aus zwei Kommentarzeilen besteht.
Ich verstehe nicht, wie du "suplot anwenden" möchtest und wie es "die figure überschreiben" könnte.

Zitat:
z.b. ich erstelle figure mit titel und sobald ich subplot anwende wird diese figure genutzt und überschrieben d.h. meine subplots erscheinen zwar aber der titel verschwindet.

Statt der Beschreibung als Text wäre der entsrpechende Matlab Code hilfreicher.

SUBPLOT erzeugt ein neues AXES-Objekt oder aktiviert ein bereits vorhandenes, wenn es an den spezifizierten Koordinaten liegt. Das AXES-Objekt im Hintergrund dient nur dazu den Titel zu tragen, und für nichts anderes. Vielleicht hilft dies weiter:
Code:
BGAxes = axes('visible', 'off', 'units', 'normalized', 'Position', [0,0,1,1]);
text(0.5, 0.99, titleList(n), 'Parent', BGAxes , 'HorizontalAlignment','center','VerticalAlignment','top');
for i = 1:6
  AxesH = subplot(3,2,i);
  plot(1:10, rand(1, 10), 'Parent', AxesH);
end

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
nikky
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 11.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.06.2012, 15:41     Titel:
  Antworten mit Zitat      
Ich habe eine for schleife in der ich unterschiedliche Dinge plotte.
Das möchte ich in 2 unterschiedliche figures machen.

jetzt weiß ich nicht wie ich das mit dem Axes Handle unterbringen soll, da ich mit den figures durcheinander komme.
Folgendermaßen plotte ich zZ nur ohne titel.
auch wenn ich es nach deinem code aufbaue, die axes außerhalb der forschleife definiere funktioniert es nicht.
ich muss doch vorm plotten immer die figure auswählen oder nicht?
//edit habe das jetzt gelöst indem ich folgendes gemacht habe (steht in den kommentaren im code)
aber das ist glaub ich nicht die optimale Lösung?

Code:

             if k==1
                 h1=figure(1);
                 h2=figure(2);  
             end

            figure(h1);
            ha(k)=subplot(3,2,k);
            plot(f,Pxx);
            xlim([0 600]);
            xlabel('Frequency [Hz]');
            ylabel('Power Spectral Density [W/Hz]');
%             if k==6
%                 BGAxes = axes('visible', 'off', 'units', 'normalized', 'Position', [0,0,1,1]);
%                 text(0.5, 0.99, titleList(n), 'Parent', BGAxes , 'HorizontalAlignment','center','VerticalAlignment','top');
%             end

            hold on
...
            hold off

            figure(h2);
            ha2(k)=subplot(3,2,k);
            plot(rmsSignal(:,k));
            hold on
            plot(interpRMS(:,k),'r-');
            xlabel('Time [Au]');
            ylabel('Volts [V/Au]');
            legend(legendListRms(k,:));
            linkaxes(ha2,'x');
%             if k==6
%                 BGAxes = axes('visible', 'off', 'units', 'normalized', 'Position', [0,0,1,1]);
%                 text(0.5, 0.99, titleList(n), 'Parent', BGAxes , 'HorizontalAlignment','center','VerticalAlignment','top');
%             end

            hold off
 
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 - 2025 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.