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

rotateXLabels (FEX) und PostScript dreht Figure um

 

Kascho
Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 10.09.2013, 16:27     Titel: rotateXLabels (FEX) und PostScript dreht Figure um
  Antworten mit Zitat      
Hi Ho,

die an sich sehr nützliche Funktion rotateXLabels:
http://www.mathworks.com/matlabcent.....rotate-x-axis-tick-labels
in Kombination mit ps2pdf
http://www.mathworks.com/matlabcentral/fileexchange/19516-ps2pdf
dreht mir immer das komplette figure bzw. PostScript um (also schon vor dem ps2pdf).

Kennt jemand das Problem und hat evtl ne Lösungsidee?

p.s: habe auch xticklabel_rotate ausm FEX ausprobiert, selbes Problem

p.p.s:Minimal Beispiel bin ich grad am schreiben ... kommt gleich. Wink

*edit: Beispiel kommt später oder eher erst am Donnerstag .... Meeting time ... Aber würde mich jetzt schon über Ideen freuen Wink

Danke und Gruß, Kascho
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: 10.09.2013, 20:31     Titel: Re: rotateXLabels (FEX) und PostScript dreht Figure um
  Antworten mit Zitat      
Hallo Kascho,

Was bedeutet:
Zitat:
dreht mir immer das komplette figure bzw. PostScript um (also schon vor dem ps2pdf).

Was wird genau wohin umgedreht?

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

Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 12.09.2013, 14:57     Titel:
  Antworten mit Zitat      
Hi Jan, danke für die Antwort. Ich kam in den letzten 2 Tagen nicht dazu was dran zu machen.
Umdrehen heißt, dass es beim export der figure ins ps Format zu einer Drehung um 90° kommt (unter Verwendung von rotateXLabels).

Habe grad versucht das anhand eines einfach Beispiels zu reproduzieren, das seltsame, es ist lässt sich nicht mit einem einfach Beispiel reproduzieren.

Deswegen hier mal der komplette Code den ich verwende:


Code:

weref(1)=5;
weref(2)=6;
mark{1}='*';
mark{2}='o';
mark{3}='s';
%% Testdaten erstellen
DATEN{1,1}=30*rand(3,24);
DATEN{1,2}=30*rand(3,24);
for m=1:24
    NAMEN{m}=['Bla ',num2str(m)];
end
close all              
figure('NumberTitle','off','Name',num2str(1))  
hold off
for m=1:2
 
subplot(2,1,m)
farbe=varycolor(length(DATEN{1,m}));   % varycolor aus FEX
   
    for n=1:3
 
        for i=1:length(DATEN{1,m})
 
                if i<=weref(m)
                    style='--';  
                else
                    style='-';
                end
                h(n)=stem(i,DATEN{1,m}(n,i),'Color',farbe(i,:),'LineStyle',style,'Marker',mark{n});  
                hold on
        end
    end
   
axis([0 25 min(min(DATEN{1,m}))-5 max(max(DATEN{1,m}))+5])  
title('Bla');
set(gca,'XTick',[1.1:length(NAMEN)+0.1],'XTickLabel',NAMEN,'YGrid','on','Box','off');

rotateXLabels(gca(),90)

set(gca,'XTick',[]);    
ylabel('Testwerte');
if m==1
 
clickablelegend(h,{'MP1','MP2','MP3'},'Location','BestOutside');  

    posi1=get(gca,'Position');

elseif m==2
    posi1(2)=0.11;
    set(gca,'Position',posi1);
    posi2=posi1;
    posi2(1)=posi1(1)+posi1(3)+0.03;
    posi2(3)=0.15;
   
annotation(gcf,'textbox',posi2,...          
'String',['Sperren: ','Bla','Blub'],...
'FitBoxToText','off');
end
end
 
       set(gcf, 'PaperType', 'A4');
       set(gcf, 'PaperOrientation', 'landscape');
       set(gcf, 'PaperPosition',[0, 0, 21, 29])
       print -append -dpsc2 ausgabe
 

pdf_title='AuswertungTestdaten.pdf';
ps2pdf('psfile','ausgabe.ps','pdffile',pdf_title,'gspapersize','a4', 'deletepsfile',1)  
 


Die Ausführung des Codes sollte mein Problem verdeutlichen. Kann mir nicht erklären an welchem Befehl es liegt. Aber ich vermute, dass es etwas mit den Schleifen zu tun, da ich diese beim einfachen Beispiel ja nicht brauchte.

p.s.: Files aus dem FEX: clickablelegend.m; rotateXLabels.m; varycolor.m; ps2pdf.m;


Danke schonmal fürs laufen lassen und Fehler finden Wink

Gruß, Kascho
Private Nachricht senden Benutzer-Profile anzeigen
 
Kascho
Themenstarter

Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 16.09.2013, 07:50     Titel:
  Antworten mit Zitat      
Hi nochma, konnte immernoch keine Lösung finden. Läuft der Programmausschnitt bei euch nicht? Oder ist meine Problembeschreibung noch zu ungenau? Nochmal:
Obiger Code führt zu einer 90° Drehung meines kompletten figures, wenn ich es als eps speichere (es sollen ja aber nur die Labels gedreht werden).
Beim Versuch, den Fehler mit einem Mini Beispiel zu zeigen, konnte diese Drehung nicht reproduziert werden.

Niemand Ideen?

Gruß, Kascho
Private Nachricht senden Benutzer-Profile anzeigen
 
Kascho
Themenstarter

Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 18.09.2013, 11:27     Titel:
  Antworten mit Zitat      
Bin ja eher kein Freund des bumpings.... Hat jemand mal den Code laufen lassen und konnte den Fehler bzw. das Problem reproduzieren?

Gruß
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: 18.09.2013, 13:03     Titel:
  Antworten mit Zitat      
Hallo Kascho,

Zitat:
Hat jemand mal den Code laufen lassen und konnte den Fehler bzw. das Problem reproduzieren?

Es wird kaum möglich sein darauf "ja" oder "nein" zu antworten.

Ich habe den Code nich laufen lassen, weil mir die Installtion von clickablelegend.m; rotateXLabels.m; varycolor.m; ps2pdf.m zu umständlich ist. Was passiert denn, wenn Du statt ps2pdf den PDF-Export von matlab verwendest? Oder export_fig aus der FEX? Ist auch das PS-File bereits gedreht? Dann wäre es ein Problem von PS2PDF.

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

Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 18.09.2013, 13:15     Titel:
  Antworten mit Zitat      
Danke nochmals für die Antwort Jan. Das zeigt mir direkt, dass mein Titel schlecht gewählt ist. Mit ist erst später aufgefallen, dass es nichts mit ps2pdf zu tun hat.
Also das eps file ist schon um 90° gedreht.

Beim manuellen "speichern unter" des figures als pdf tritt das selber Problem auf.

export_fig ist irgendwie noch schlimmer. Hierbei kommt es zu einer horizontalen Spiegelung und der 90° Drehung.

Ich vermute mal, dass clickableLegend, varycolor sowie ps2pdf nichts mit dem Problem zu tun haben. Ich hatte es nur der Vollständigkeit halber mit rein geschrieben, da ich echt keine Ahnung habe wie das Problem entsteht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Rek

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.09.2013, 15:05     Titel:
  Antworten mit Zitat      
Liegt wohl an folgender Code-Zeile

Code:

set(gcf, 'PaperOrientation', 'portrait'); %'landscape');


Tausch die beiden Ausrichtungsvarianten mal, denk dass sollte helfen.
Wie in der Matlabhilfe steht, wird die Figure abh. von den Abmessungen
(längere und kürzere Seite) mal so und mal so angeordnet.

Gruß Rek
 
Kascho
Themenstarter

Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 19.09.2013, 15:24     Titel:
  Antworten mit Zitat      
Hi Rek, vielen Dank auch dir für die Antwort. Hatte ich aber schon ausprobiert Wink Kein Erfolg...
Hast du den Code laufen lassen und klappt es bei dir?
Meine matlab Version ist (glaube ich) etwas verbuggt bzw defekt. Hat sich bis jetzt aber nur auf den Latex Interpreter und auf paar Kleinigkeiten bei der figure Darstellung ausgewirkt.
Ich würde gerne wissen ob es daran liegt, daher würde ich mich freuen, wenn es mal jemand testen kann.
Wie gesagt, clickableLegend, ps2pdf und varycolor können weggelassen werden.

Gruß, Kascho
Private Nachricht senden Benutzer-Profile anzeigen
 
Rek

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.09.2013, 17:34     Titel:
  Antworten mit Zitat      
Hi ich habe den Code mal laufen lassen und folgende Ausgabebefehl
zur Erzeugung der Grafik verwendet

Code:
print('-depsc','-tiff','-r300','picture')


Und wie zuvor gepostet wurde es bei

Code:
set(gcf, 'PaperOrientation','landscape');

um 90° verdreht bzw. die beiden Subplots wurden vertical ausgerichtet.
Durch ändern auf 'portrait' hats dann bei mir gepasst.
Ausgabe in -dpsc2 und anschließend speichern als pdf hab ich nicht getestet...

Gruß
 
Kascho
Themenstarter

Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 21.09.2013, 13:02     Titel:
  Antworten mit Zitat      
Ok, danke dir fürs ausprobieren und werde es am Montag mal testen. Wenn es nicht passen sollte, dann werde ich mal nen screenshoot posten müssen ...

Schönes Rest WE euch allen,
Kascho
Private Nachricht senden Benutzer-Profile anzeigen
 
Kascho
Themenstarter

Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 01.10.2013, 14:45     Titel:
  Antworten mit Zitat      
Soho, bin letzte Woche nicht dazu gekommen weiter zu testen. Die bisherigen Ideen haben leider nichts gebracht. Ich habe den Code mal etwas ausgedünnt:

Code:

%%%% Testdaten erstellen
DATEN{1,1}=30*rand(3,24);
DATEN{1,2}=30*rand(3,24);
for m=1:24
    NAMEN{m}=['Bla ',num2str(m)];
end
%%%%

%%%% Plotten
figure(1)
hold off
for m=1:2

subplot(2,1,m)

    for n=1:3

        for i=1:length(DATEN{1,m})

                h(n)=stem(i,DATEN{1,m}(n,i));  %% Plotten ...
                hold all
        end
    end

title('Bla');
set(gca,'XTick',[1.1:length(NAMEN)+0.1],'XTickLabel',NAMEN)
rotateXLabels(gca(),90)
ylabel('Testwerte');
end

%%%%

       print  -dpsc2 ausgabe     % PostScript Level 2 color

%%%% Speichern in pdf

pdf_title='AuswertungTestdaten.pdf';
ps2pdf('psfile','ausgabe.ps','pdffile',pdf_title,'gspapersize','a4', 'deletepsfile',1)  % FEX
 



Es wird nur noch das rotateXLabels aus dem FEX benötigt.
(ps2pdf hab ich mal stehen lassen, weil nicht jeder PS Files angucken kann)

Jedenfalls ist das PS file ("ausgabe.ps") ebenfalls schon um 90° verdreht.
Falls das Problem immer noch nicht deutlich wird, im Anhang sind 2 PICs.


*edit: Vllt. noch interessant: Wenn ich manuell über saveas das figure als pdf speichere, dann tritt das selber Problem auf.
Wenn ich es als .bmp, jpg, png speichere, dann passt alles.

Bedanke mich für Ideen.

Gruß, Kascho

PDF-PS.PNG
 Beschreibung:
PS File, bzw. PDF file - Soll so aussehen wie das figure ...

Download
 Dateiname:  PDF-PS.PNG
 Dateigröße:  31.24 KB
 Heruntergeladen:  619 mal
figure.PNG
 Beschreibung:
Screenshot der figure. Soll soll das ps file aussehen.

Download
 Dateiname:  figure.PNG
 Dateigröße:  37.24 KB
 Heruntergeladen:  595 mal
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.