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 Plots erstellen - immer gleiche Achsenskalierung

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.04.2012, 15:54     Titel: mehrere Plots erstellen - immer gleiche Achsenskalierung
  Antworten mit Zitat      
Hallo!

Ich arbeite noch nicht lange mit Matlab und habe folgendes Problem:

Möchte immer jeweils 3 Plots erstellen aus einem Haufen von Daten,
Plot 1 zeigt alle blauen Wertepaare (ich nenn das jetzt mal so...)
Plot 2 zeigt alle roten Wertepaare
Plot 3 zeigt alle blauen UND roten Wertepaare

Die Achsenskalierung soll aber immer gleich sein (so wie in Plot 3, wenn
alle Werte in einem Plot vereinigt sind).

Wenn man Matlab keine Vorgaben macht, skaliert dieses irgendwie
nach seinen eigenen Regeln, es wird aber immer jeweils das obere/
untere/rechte/linke Ende des Plots mit einem Wert beschriftet.
Wenn ich nun manuell die Ober- und und Untergrenze mit Hilfe des größten und kleinsten Wertes festlege, wird im Plot der untere und obere
Abschluss der Achsen aber nicht mit einem Strich in der Achsenskalierung
gekennzeichnet, was meine 2. Anforderung wäre.

Also: immer gleiche Achsenskalierung in mehreren Plots und untere und obere Grenze des Plots soll auf einen "geraden" Wert treffen, der dann
mit einem Zahlenwert beschriftet ist.

Ich hoffe, das konnte man irgendwie verstehen und würde mich sehr
über eine Lösung freuen!! Danke!


Wall-E
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 21.06.11
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 25.04.2012, 11:34     Titel:
  Antworten mit Zitat      
Hast du dazu ein m-file oder plottest du "einfach so" die Daten?

Wenn man einen Strich in der Achsenskalierung dazu will musst du die Grenzen einfach ein bisschen höher setzen als den Wert den du gern hättest.

Also Beispiel wie du es wahrscheinlich hast:
Code:

set(axes1,'Xlim',[0 10])


So dann mit "Strich"

Code:
set(axes1,'Xlim',[-0.0001 10,0001])


Den Code dann einfach ans Ende setzen wenn du alle Daten schon geplottet hast.

Meld dich ob es das ist was du wolltest
Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Wall-E
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 21.06.11
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 25.04.2012, 11:35     Titel:
  Antworten mit Zitat      
Soll natürlich
Code:
heißen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2012, 13:16     Titel:
  Antworten mit Zitat      
Danke für deine Antwort!

Jetzt ist mir aufgefallen, dass ich mich doch falsch ausgedrückt hatte,
ich möchte keinen zusätzlichen Strich, sondern, dass der letzte Strich
sozusagen den Abschlusskanten entspricht - aber eben mit einem
Wert beschriftet ist! Wie es matlab ohne Vorgaben auch machen würde.

Momentan sieht der Code dazu folgendermaßen aus:
X2/Y2 sind die Matrizen in denen die Werte hinterlegt sind.
Damit die Abschlusskanten noch ein bisschen vom jeweils "extremsten"
Wert entfernt sind, addiere/subtrahiere ich noch 10% des Wertes.

Code:
xlim([(min(X2)-(0.1*min(X2))) (max(X2)+(0.1*max(X2)))])
ylim([(min(Y2)-(0.1*min(Y2))) (max(Y2)+(0.1*max(Y2)))])


So kann ich das Problem, dass alle 3 Plots die gleiche Achsenskalierung
haben lösen, allerdings nicht das Problem mit den beschrifteten Abschluss-
kanten. Ist das verständlich...?
 
Wall-E
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 21.06.11
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 25.04.2012, 14:38     Titel:
  Antworten mit Zitat      
Ja das versteh ich schon.
Hast du die xlims und ylims einfach mal weggelassen und die Achsenmarkierung Matlab überlassen?
Der Matlab-Algorithmus ist meistens schon sehr gut und wenn die Daten sich nicht so extrem unterscheiden sollte eigentlich was gescheites bei rauskommen.
Wenn nicht kannst du halt noch die Labels ändern. Guck dir dazu am besten mal XLabel oder XTickLabel an... da hört mein Latein leider schon auf.Ist aber nicht so schwer.Ich hab das auch schonmal gemacht müsste mich da jetzt aber wieder reinfuchsen...
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: 25.04.2012, 15:10     Titel: Re: mehrere Plots erstellen - immer gleiche Achsenskalierung
  Antworten mit Zitat      
Hallo,

Code:
Axes1H = subplot(1,3,1);
plot(rand(1, 5));
Axes2H = suplot(1,3,2);
plot(rand(1, 5));
Axes3H = suplot(1,3,3);
plot(rand(1, 10) * 10);

LimX = get(Axes3H, 'XLim');
LimY = get(Axes3H, 'YLim');
set([Axes1H, Axes2H], 'XLim', LimX, 'YLim', LimY);

Ich lasse Matlab hübsche Limits für den letzten Plot wählen und setze die anderen beiden Plots auf die gleichen Werte. Hilft das?

Gruß, Jan
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.