Gibt es mittlerweile eine Möglichkeit die Beschriftung der X-Achse vertikal zu platzieren ohne mit Textobjekten zu arbeiten wie z.B. in dieser Lösung (http://www.gomatlab.de/xlabel-um-90-drehen-t2070.html)?
Ich habe einen Bar-Plot (siehe Anhang), in dem verschiedene Szenarien miteinander verglichen werden sollen und da ich für verschiedene Rechnungen verschiedene Labels brauche, wäre es mit Textobjekten sehr umständlich..
Hier mal der Code:
Code:
Xneg = annuitaeten_gesamt(:,1:4);
Xneg(Xneg>0) = 0;
Xpos = annuitaeten_gesamt(:,1:4);
Xpos(Xpos<0) = 0;
Xges = annuitaeten_gesamt(:,5);
hold on
bar(Xneg,'stack') bar(Xpos,'stack') bar(Xges,'FaceColor',[0.50.50.5],'BarWidth',0.25) hold off
Was soll in dem Beispielbild gedreht werden? Was ist der Nachteil beim Hantieren mit den TEXT-Objekten? Hast Du schonmal in Matlab's FileExchange gesucht, z.B. nach "Rotate label" oder "rotate tick"?
Es gibt scheinbar mehrere Funktionen, die das realisieren.
Ich habe es jetzt mit der Funktion "rotateXLabels.m" (http://www.mathworks.com/matlabcentral/fileexchange/27812-rotate-x-axis-tick-labels) gelöst. Die fand ich von der Benutzung am komfortabelsten.
Hier mal exemplarisch mein Code und im Anhang das Ergebnis:
Code:
% Figure erzeugen
figure1 = figure;
% Standardgröße setzen um direkt speichern zu können set(figure1,'Units','pixels','Position',[200200940640]);
% Achsenbeschriftungen + Abstände durch Leerzeichen setzen
axes1 = axes('Parent',figure1,...
'XTickLabel',{
'',...
'Szenario 1 und Text dazu ',...
'Szenario 2 und Text dazu ',...
'3',...
'4',...
'5',...
'6',...
'7',...
'8',...
'9',...
'10',...
'11',...
'12',...
'13',...
'14'
},...
'XTick',[01234567891011121314]);
% Labels drehen
hh = rotateXLabels(axes1,90) hold on
bar(Xneg,'stack') bar(Xpos,'stack') bar(Xges,'FaceColor',[0.50.50.5],'BarWidth',0.25) hold off
Verfasst am: 03.07.2015, 14:18
Titel: Lösung für MATLAB 2014b
Hallo zusammen,
bis gerade eben hatte ich das selbe Problem.
Für alle denen es auch so geht (und auch mit Version 2014b arbeiten) und die wie ich nicht die Funktion rotateXLabels runterladen möchten (http://www.mathworks.com/matlabcentral/fileexchange/27812-rotatexlabels--ax--angle--varargin--) hier ein Link mit einigen Grafik-Features für Matlab 2014b:
http://www.automatedtrader.net/blog.....-the-new-graphics--system
Code:
%Beispiel für Matrix A
H = bar3(A);
hx = get(H(1),'parent');
hx.YTickLabelRotation = 30;
hx.XTickLabelRotation = -45;
Verfasst am: 30.04.2017, 10:59
Titel: Lösung für MATLAB 2014b
Danke für die Ergänzung - funktioniert. Meine Suche hast du damit erheblich verkürzt!
Einstellungen und Berechtigungen
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
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.