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

keine durchgezogene Linie plotten, weil Datenlücken

 

Claudi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2012, 09:21     Titel: keine durchgezogene Linie plotten, weil Datenlücken
  Antworten mit Zitat      
Hallo,

ich habe eine Zeitreihe mit dazugehörigen Daten die geplottet werden sollen. Problem ist, dass die Zeitreihe nicht vollständig ist und immerwieder Lücken auftreten. Diese Datenlücken sind nicht in meiner Wertetabelle explizit dargestellt. Also ich hab beispielsweise für das Jahr 2000 den Wert 10 und für das Jahr 2003 den Wert 15 und 2001 und 2002 kommen in meiner Tabelle nicht vor.

Wie kann ich nun einstellen, dass wenn solche Datenlücken auftreten, die geplottete Linie nicht ducrhgezogen wird. Sondern erst wieder einsetzt, wenn eine durchgänge Zeitreihe vorhanden ist?

Und dann möcht ich gern mehrere Graphen in ein Diagramm einzeichen und das ganze mit einer for - Schleife. Problematisch wird nur, dass ich nicht weiß wie ich in der For-Schleife meine Farben automatisch ändern kann.

hier der bisherige Code:

Code:
for i = 1:length(ErgPH2)
plot(ErgPH2{i}(:,5),ErgPH2{i}(:,6),'y.-');
hold on
end


Für die Farbe (hier y) hätte ich gern, dass jeder Graph seine eigene hat.
Wie geht das?


Vielen dank für eure Hilfe!

LG Claudi


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 09.05.2012, 10:03     Titel:
  Antworten mit Zitat      
du kannst bei der collorproperty auch den rgb wert angeben. und den kannst du in der forschleife ja kontinuirlich verändern.
um die daten aufzuteilen kannst du
Code:
benutzen und gucken wo der unterschied von 2 aufeinanderfolgenden daten nicht 1 ist. das wurde hir im forum schon des öfteren behandelt. damit teilst du dann deine daten in deine abschnitte auf.
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: 09.05.2012, 11:11     Titel: Re: keine durchgezogene Linie plotten, weil Datenlücken
  Antworten mit Zitat      
Hallo Claudi,

Ein konkretes Beispiel wäre einfacher zu beantworten. Das Detail, ob es sich um Zeitreihen handelt, ist dagegen unwichtig, da es für Matlab einfach nur Zahlen sind. Der Type und die Dimensionen von "ErgPH2" und den Elementen dieser Cell, wären wiederum wichtig.

Ich versuche ein konkretes Beispiel zu erraten:
Code:
x = [1900:2000, 2002, 2003:2012];
y = rand(size(x));
xfull = x(1):x(end);  % equidistant steps
yfull = Inf(size(xfull));
yfull(ismember(x, xfull)) = y;
plot(xfull, yfull);

Die Lücken sind also mit Inf's gefüllt, die im Plot nicht gezeichnet werden.

Die Farben lassen sich z.B.: so ändern:
Code:
color1 = {'r', 'g', 'b'};
color2 = jet(16);
plot(1:10, rand(1, 10), color1{1});
hold('on');
plot(1:10, rand(1, 10), color2(4, :));

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 09.05.2012, 11:39     Titel:
  Antworten mit Zitat      
Hallo zusammen,

eine kurze Frage hätte ich ebenfalls dazu. Könnte man statt inf auch NaN verwenden? Habe hier leider kein Matlab zum Testen...

Danke und Grüße, MaFam
Private Nachricht senden Benutzer-Profile anzeigen
 
Claudi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2012, 13:09     Titel:
  Antworten mit Zitat      
Danke für die schnellen Antworten:

ich probiers gleich mal aus.Nur vornweg mal ein Auszug aus meiner Wertetabelle:

Code:
1958   51
1959   59
1960   56
1967   33
1968   65
1969   83
1970   77
1971   51
1972   63
1973   51
1974   34
1975   28
1976   60
1977   48
1982   63
1983   68
1984   74
1985   82
1986   79
1988   72
 
 
Claudi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2012, 13:12     Titel:
  Antworten mit Zitat      
Also mein ErgPH2 ist ein Cell Array (16)
Darin enthalten sind jeweils immer 6 Spalten aber unterschiedliche Anzahl an Zeilen (in Form von double)
 
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.