ich habe versucht die Lösung von Nras mal an meine Bedürfnisse anzupassen, jedoch funktioniert es nicht so wie ich es möchte.
Zunächst einmal habe ich eine Zeitreihe (X-Achse ist die Zeitachse. Für jeden Zeitpunkt habe ich ein Wert (Y-Achse). Dabei möchte ich den Wert, der die Schwelle überschritten hat (beispielsweise grün darstellen) und die Werte, die unterhalb der unteren Schranke liegen sollen in rot angezeigt werden. restliche Werte sollen schwarz bleiben.
Die Achsen konnte ich bislang noch nicht anpassen? Was müsste ich an dem COde ändern?
Code:
werte = rand(1,10000)*360;
untereGrenze = 240;
obereGrenze = 290;
[werte,bins] = hist(werte,length(werte));
rote = find(bins <=untereGrenze); % in [lower_b, upper_b]
gruene = find(bins>=obereGrenze); % in [lower_b, upper_b]
schwarze = [find(bins<untereGrenze),find(bins>obereGrenze)]; % nicht in [lower_b, upper_b] bar(bins(schwarze),werte(schwarze),'facecolor','black') hold on
bar(bins(rote),werte(rote),'facecolor','red','edgecolor','red') hold on
bar(bins(gruene),werte(gruene),'facecolor','green','edgecolor','green')
figure bar(bins(schwarze),werte(schwarze),'facecolor','black') hold on
bar(bins(rote),werte(rote),'facecolor','red','edgecolor','red') hold on
bar(bins(gruene),werte(gruene),'facecolor','green','edgecolor','green')
Falls du aber die Zeitreihe einfach nur darstellen willst und die Farben ändern willst, ginge zum beispiel soetwas. Geht vielleicht besser und ist sieht nicht so richtig schön aus, aber vom Prinzip her kann das so gehen
Code:
% Zeitreihe fälschen
N = 5000;
u = zeros(1,N);
r = (rand(1,N)-0.5).*randn(1,N);
u(1) = 3; % irgendwo anfangen for t = 1:N-1
u(t+1) = u(t) + r(t); % Zeitreihe Wind end % negative Daten ausmerzen
u(u<0) = 0;
Wenn du Linien plotten willst, könntest Du dir eventuell die Zeitpunkte ansehen, zu denen man eine der Grenzen passiert und dann für diese Teilstücke Linien in den passenden Farben plotten.
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 04.04.2013, 15:23
Titel:
Danke läuft schon mal.
Jedoch arbeite ich mit subplots, und würde gerne eine plot funktion verwenden. sonmst wird es für mich kompliziert
Code:
plot(rote,u(rote),'r.') hold on
plot(gruene,u(gruene),'g.') plot(schwarze,u(schwarze),'k.')
nur als Platzhalter gedacht ist. Erscheint denn bei dem von mir beschriebenen Beispiel die Legende bei Dir, wenn Du das ausführst?
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 17.04.2013, 16:52
Titel:
Die Legende ist ja korrekt, schließlich geht es mit
subplot() plot() legend()
sobald ich es durch
subplot() meineausgabefunktion() legend()
ersetze, wird es nicht angezeigt. komisch.. ich versuche es mal zu posten
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.