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

plotyy-YTickLabel wird ignoriert

 

dero1690
Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 03.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.02.2016, 16:02     Titel: plotyy-YTickLabel wird ignoriert
  Antworten mit Zitat      
Hallo Zusammen !

Ich kämpfe seid langer Zeit mit einem plotyy-Plott und hoffe, mir könnte jemand von bei meinen problemen helfen, dafür wäre ich sehr dankbar !

Hier ist erstmal das vereinfachte Beispiel dazu:

Code:

%% Plotten
% t11 und y11 jeweils Matrizen mit 2 Spalten, t12 und y12 Spaltenvektoren
%Plot Reibungskraft und Geschwindigkeit
[hAx,hLine1,hLine2] = plotyy(t11,y11,t12,y12);
hold on

% Plot angreifende Kraft
p=plot(t2,y2);

% Bearbeiten Graph Reibungskraft
set(hLine1,'Color','blue');
set(hLine1,'Linewidth',5);

% Bearbeiten Graph Geschwindigkeit
set(hLine2,'Color','red');
set(hLine2,'Linewidth',5);

% Bearbeiten Graph angreifende Kraft
set(p,'Color','k');
set(p,'Linewidth',5);

% x-Achsenbeschriftung
xlabel('$t$ in $s$','Fontsize',44,'Interpreter','Latex');
set(hAx(1),'YColor','k');


% y-Achsenbeschriftung linke Seite
ylabel(hAx(1),'$F$ in $N$','Fontsize',44,'Interpreter','Latex','Color','k') % left y-axis

% y-Achsenbeschriftung rechte Seite
ylabel(hAx(2),'$\dot{x}$ in $\frac{m}{s}$','Fontsize',44,'Interpreter','Latex','Color','k') % right y-axis

% y-Zahlenbeschriftung bearbeiten
set(hAx(1),'YColor','k');
set(hAx(2),'YColor','k');
set(hAx,'FontSize',44)

% #####Achsengestaltung


% Achse links

% Achsenlimit
axis(hAx(1),[min(t1(:,1)) max(t1(:,1)) y1min y1max ]);
%Achseneinteilung
y_tick_l=[linspace(y1min,0,3)  linspace(y1max/2,y1max,2)];
set(hAx(1),'YTick',[y_tick_l])
% Achsensbeschriftung
% Umwandlung in String, Abschneiden von Stellen
y_label_string_l_1=num2str(y_tick_l(1),'%10.0f\n')
y_label_string_l_2=num2str(y_tick_l(2),'%10.0f\n')
y_label_string_l_3=num2str(y_tick_l(3),'%10.1f\n')
y_label_string_l_4=num2str(y_tick_l(4),'%10.1f\n')
y_label_string_l_5=num2str(y_tick_l(5),'%10.1f\n')

% Achsenbeschriftung
set(hAx(1),'YTickLabel',{'y_label_string_l_1','y_label_string_l_2','y_label_string_l_3','_label_string_l_4','y_label_string_l_5'})

% Achse rechts (noch nicht vollständig, prinzipielle gleiches Vorgehen wie
% Achse links
% Achsenlimit
axis(hAx(2),[min(t2) max(t2) y2min y2max ]);
y_tick_r=[linspace(y2min,0,3)  linspace(y2max/2,y2max,2)];
%Achseneinteilung
set(hAx(2),'YTick',[y_tick_r])
% x-Achse
x_tick=[linspace(0,xmax,5)];
set(hAx(1),'XTick',[x_tick]);
% Gitternetz
grid on


% Position Diagramm
set(gca, 'Position', [0.15, 0.29, 0.70, 0.66]);


% Linie, um die Limits für F_L_C und F_R_G_C zu kennzeichnen
l1=line([1.5*min(t1(:,1)) 1.5*max(t1(:,1))],[-F_L_C -F_L_C],'Linewidth',5,'Color','k','LineStyle','--' );  
l2=line([1.5*min(t1(:,1)) 1.5*max(t1(:,1))],[F_L_C F_L_C],'Linewidth',5,'Color','k','LineStyle','--');
% Legende
legend([hLine1 hLine2 p l1 ],{'$F_{R}$','$\dot{x}$','$F$','$\pm\,F_{L,C}$'},'Interpreter','Latex','Location','southoutside','Orientation','horizontal')

% Kommas als Dezimaltrenner
plotUseDecimalComma(gca,'XY')

 


Da meine Betreuer bestimmte Vorstellungen an meine Achseneinteilung hat, musste ich ein paar Einstellungen vornehmen.
Bei mir hapert es an Folgendem.

Der Befehl
Code:


set(hAx(1),'YTickLabel',{'y_label_string_l_1','y_label_string_l_2','y_label_string_l_3','_label_string_l_4','y_label_string_l_5'})
 


wird nicht ausgeführt, d.h. die Achsenbeschriftung bleibt so, wie sie mit 'YTick' vorher eingeteilt wurde.
Ich muss sie aber leider mit 'YTickLabel' anpassen, da sonst ziemlich lange Dezimalzahlen entstehen und meine Achsenbeschriftung dann aus dem Bild rausgleitet. Runden geht leider auch nicht, weil das die beiden y-Achsen häßliche Gitternetze implementieren.

Woran könnte es liegen, dass 'YTickLabel' die Achsenbeschriftung nicht ändert ?


Vielen Dank und viele Grüße

Denys
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 18.02.2016, 18:18     Titel:
  Antworten mit Zitat      
Hallo,

müsste es nicht heißen?

Code:

set(hAx(1),'YTickLabel',{y_label_string_l_1,y_label_string_l_2,y_label_string_l_3,y_label_string_l_4,y_label_string_l_5})
 


Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen
 
dero1690
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 03.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.02.2016, 09:24     Titel:
  Antworten mit Zitat      
Hallo !

Danke für die Antwort !

Ich habe es ausprobiert, aber leider bringt dein Vorschlag auch nichts Sad.
Genauso wie vorher werden die definierten String-Dateien nicht als Achsenbeschriftung gezeigt.



Hätte da jemand anders ein Idee ?


Viele Grüße
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: 19.02.2016, 11:17     Titel:
  Antworten mit Zitat      
Hallo,

bitte ein reproduzierbares Beispiel posten, also Beispieldaten für die Variablen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 03.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.02.2016, 17:59     Titel:
  Antworten mit Zitat      
Vielen Dank nochmal für Eure Mühen !


Es hat doch so funktioniert, wie es DSP gesagt hat.


Viele liebe Grüße !
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 20.02.2016, 18:10     Titel:
  Antworten mit Zitat      
Hallo,

in diesem kleinen Bsp. werden aber auch deine Variablennamen als YTickLabels verwendet.

Code:

figure(1)
plot(1:100,rand(100,1))
set(gca,'YTickLabel',{'y_label_string_l_1','y_label_string_l_2','y_label_string_l_3','_label_string_l_4','y_label_string_l_5'})
 


Alles was du in Hochkomma ' ' einschließt, wird als String bewertet. Sollte der Platz für die Labels nicht ausreichen, könnten sie deshalb evtl. nicht angezeigt werden. Ist aber nur eine Vermutung. Du willst ja aber nicht die Variablennamen als Labels darstellen, sondern deren Wert als String. Daher keine ' '

Gruß DSP
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.