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

mehrere Subplotfenster als fortlaufendes Postscript ???

 

Phil_8_5

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2012, 15:25     Titel: mehrere Subplotfenster als fortlaufendes Postscript ???
  Antworten mit Zitat      
Hallo,

ich arbeite jetzt seit 4 Monaten mit Matlab und habe ein kleineres Problem mit der Ausgabe (PDF und/oder Postscript) von mehreren Subplotfenstern hintereinander.

Ich lade mehrere Dateien (2, 25 oder auch n!) ein und erstelle mir einen 3,3,ii-Subplot mit 9 Plots. Ziel ist es, ein Postscript (oder PDF) zu erstellen, wo beliebig viele 3-3-Subplotfenster hintereinander abgespeichert werden.

Mein Code funktioniert soweit, ist aber viel zu !lang! und auch auf 27 Plots begrenzt...

Hier ist mein Code:

Code:
switch Auswahl
   
 case 1 % nur Parameter Sauerstoff
     if AnzFiles>18 % hier enstehen 3 Subplotfenster
         f=figure('NumberTitle','off','Name','Sauerstoff','Position',[50 40 1200 850]);
           for ii=1:9
               subplot(3,3,ii); plot(tSauerstoff{1,ii},tTiefe{1,ii},'b') % blaue Farbe
               set(gca, 'YDir', 'reverse')
               axis tight
               xlabel('O2 [mg/l]')
               ylabel('Tiefe [m]')
               legend(Spalte_ctd(ii),'Location','SouthEast')
               legend('boxoff')
               hold all
           end
           ha = axes('Position',[0 0 1 1],'Xlim',[0 1],'Ylim',[0 1],'Box','off','Visible','off','Units','normalized','clipping' ,'off');
           text(0.5, 0.98,'Sauerstoff [mg/l]','HorizontalAlignment','center','VerticalAlignment','top','FontSize',14)
          g=figure('NumberTitle','off','Name','Sauerstoff_2','Position',[50 40 1200 850]);
           for ii=10:18
               y=ii-9
               subplot(3,3,y); plot(tSauerstoff{1,ii},tTiefe{1,ii},'b') % blaue Farbe
               set(gca, 'YDir', 'reverse')
               axis tight
               xlabel('O2 [mg/l]')
               ylabel('Tiefe [m]')
               legend(Spalte_ctd(ii),'Location','SouthEast')
               legend('boxoff')
               hold all
           end
           ha = axes('Position',[0 0 1 1],'Xlim',[0 1],'Ylim',[0 1],'Box','off','Visible','off','Units','normalized','clipping' ,'off');
           text(0.5, 0.98,'Sauerstoff [mg/l]','HorizontalAlignment','center','VerticalAlignment','top','FontSize',14)
          h=figure('NumberTitle','off','Name','Sauerstoff_3','Position',[50 40 1200 850]);
           for ii=19:AnzFiles
               y=ii-18
               subplot(3,3,y); plot(tSauerstoff{1,ii},tTiefe{1,ii},'b') % blaue Farbe
               set(gca, 'YDir', 'reverse')
               axis tight
               xlabel('O2 [mg/l]')
               ylabel('Tiefe [m]')
               legend(Spalte_ctd(ii),'Location','SouthEast')
               legend('boxoff')
               hold all
           end
           ha = axes('Position',[0 0 1 1],'Xlim',[0 1],'Ylim',[0 1],'Box','off','Visible','off','Units','normalized','clipping' ,'off');
           text(0.5, 0.98,'Sauerstoff [mg/l]','HorizontalAlignment','center','VerticalAlignment','top','FontSize',14)
           print(f,'-dpsc','Sauerstoff')
           print(g,'-dpsc','-append','Sauerstoff')
           print(h,'-dpsc','-append','Sauerstoff')
     elseif AnzFiles>9 & AnzFiles<19 % hier entstehen 2 Subplotfenster
           f=figure('NumberTitle','off','Name','Sauerstoff','Position',[50 40 1200 850]);
           for ii=1:9
               subplot(3,3,ii); plot(tSauerstoff{1,ii},tTiefe{1,ii},'b') % blaue Farbe
               set(gca, 'YDir', 'reverse')
               axis tight
               xlabel('O2 [mg/l]')
               ylabel('Tiefe [m]')
               legend(Spalte_ctd(ii),'Location','SouthEast')
               legend('boxoff')
               hold all
           end
           ha = axes('Position',[0 0 1 1],'Xlim',[0 1],'Ylim',[0 1],'Box','off','Visible','off','Units','normalized','clipping' ,'off');
           text(0.5, 0.98,'Sauerstoff [mg/l]','HorizontalAlignment','center','VerticalAlignment','top','FontSize',14)
          g=figure('NumberTitle','off','Name','Sauerstoff_2','Position',[50 40 1200 850]);
           for ii=10:AnzFiles
               y=ii-9
               subplot(3,3,y); plot(tSauerstoff{1,ii},tTiefe{1,ii},'b') % blaue Farbe
               set(gca, 'YDir', 'reverse')
               axis tight
               xlabel('O2 [mg/l]')
               ylabel('Tiefe [m]')
               legend(Spalte_ctd(ii),'Location','SouthEast')
               legend('boxoff')
               hold all
           end
           ha = axes('Position',[0 0 1 1],'Xlim',[0 1],'Ylim',[0 1],'Box','off','Visible','off','Units','normalized','clipping' ,'off');
           text(0.5, 0.98,'Sauerstoff [mg/l]','HorizontalAlignment','center','VerticalAlignment','top','FontSize',14)
           print(f,'-dpsc','Sauerstoff')
           print(g,'-dpsc','-append','Sauerstoff')
     else AnzFiles<10 % hier entsteht ein 3 mal 3 Subplotfenster
         f=figure('NumberTitle','off','Name','Sauerstoff','Position',[50 40 1200 850]);
           for ii=1:AnzFiles
               subplot(3,3,ii); plot(tSauerstoff{1,ii},tTiefe{1,ii},'b') % blaue Farbe
               set(gca, 'YDir', 'reverse')
               axis tight
               xlabel('O2 [mg/l]')
               ylabel('Tiefe [m]')
               legend(Spalte_ctd(ii),'Location','SouthEast')
               legend('boxoff')
               hold all
           end
           ha = axes('Position',[0 0 1 1],'Xlim',[0 1],'Ylim',[0 1],'Box','off','Visible','off','Units','normalized','clipping' ,'off');
           text(0.5, 0.98,'Sauerstoff [mg/l]','HorizontalAlignment','center','VerticalAlignment','top','FontSize',14)
           print(f,'-dpsc','Sauerstoff')
     end


Kurz gesagt möchte ich, dass es nachdem ein Subplotfenster mit 9 kleinen Plots "voll" ist, sich ein neues Subplotfenster öffnet und die noch fehlenden Subplots anzeigt (und natürlich noch bei Bedarf ein 3. oder 4. oder n. Fenster öffnet).

Weiterhin ist die Anzahl "AnzFiles" vorher immer bekannt.

Die Priorität liegt im Postscript, das Matlabeigene Fenster interessiert weniger...

Vllt. kann mir jemand helfen? Danke an euch!


Phil_8_5

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.01.2012, 19:27     Titel:
  Antworten mit Zitat      
Wohl ein kniffliges Thema... naja.

Habe es jetzt selbst hinbekommen. Vllt. interessiert es ja den einen oder anderen.

Es werden also jetzt 1 bis n Subplotfenster geöffnet, wobei nicht 100 Fenster den Bildschirm "vollballern", sonder ein und dasselbe Fenster immer wieder bereinigt wird.

Die Informationen gehen aber nicht verloren, da sie immer als fortlaufendes Postskript abgespeichert werden. Das Postskript kann somit auch 1 bis n Seiten haben, später muss ich daraus noch ein PDF erzeugen.


Code:
case 1 % nur Parameter Sauerstoff
     f=figure('NumberTitle','off','Name','Sauerstoff','Position',[50 40 1200 850]);
     x=0;
     for ii=1:AnzFiles
         y=ii;
         if mod(y,4)==0
            subplot(2,2,4); plot(tSauerstoff{1,y},tTiefe{1,y},'b')
            set(gca, 'YDir', 'reverse')
            axis tight
            xlabel('O2 [mg/l]')
            ylabel('Tiefe [m]')
            legend(Spalte_ctd(y),'Location','SouthEast')
            legend('boxoff')
            hold all
            ha = axes('Position',[0 0 1 1],'Xlim',[0 1],'Ylim',[0 1],'Box','off','Visible','off','Units','normalized','clipping' ,'off');
            text(0.5, 0.98,'Sauerstoff [mg/l]','HorizontalAlignment','center','VerticalAlignment','top','FontSize',14)
            print(f,'-dpsc','-append','I:\Matlab\Test\Ausgabedateien\Sauerstoff.ps')
            clf('reset');
            x=x+1;
         else
         z=y-(x*4);
         subplot(2,2,z); plot(tSauerstoff{1,y},tTiefe{1,y},'b')
         set(gca, 'YDir', 'reverse')
         axis tight
         xlabel('O2 [mg/l]')
         ylabel('Tiefe [m]')
         legend(Spalte_ctd(y),'Location','SouthEast')
         legend('boxoff')
         hold all
         end
     end
     ha = axes('Position',[0 0 1 1],'Xlim',[0 1],'Ylim',[0 1],'Box','off','Visible','off','Units','normalized','clipping' ,'off');
     text(0.5, 0.98,'Sauerstoff [mg/l]','HorizontalAlignment','center','VerticalAlignment','top','FontSize',14)
     print(f,'-dpsc','-append','I:\Matlab\Test\Ausgabedateien\Sauerstoff.ps')


als Anregung kann ich die Befehle mod und clf empfehlen!

Viele Grüße
 
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.