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

Verfügbarkeitsgrafik plotten

 

jonnyweisch

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.01.2013, 21:20     Titel: Verfügbarkeitsgrafik plotten
  Antworten mit Zitat      
hallo liebe forum-mitglieder,


ich möchte gerne ein matlab code schreiben, womit ich die grafik im anhang erzeugen kann.

ich besitze messungen für unterschiedliche stationen und möchte gerne die verfügbarkeit der daten darstellen.

beispielsweise soll die farbe rot für fehlende daten angezeigt werden, die farbe gelb für fehlerbehaftete daten.


vielen dank und viel grüße,

wisch

wow.png
 Beschreibung:
skizze

Download
 Dateiname:  wow.png
 Dateigröße:  11.23 KB
 Heruntergeladen:  517 mal


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.01.2013, 22:23     Titel:
  Antworten mit Zitat      
Hallo,

kannst du z.B. mit imagesc machen.
Wo genau liegt das Problem?

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2013, 01:56     Titel:
  Antworten mit Zitat      
Könntest du vielleicht ein kleines Beispiel posten..
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.01.2013, 11:09     Titel:
  Antworten mit Zitat      
Hallo,

bitteschön:

Code:
data = 1 + randn(6, 20);
data(data<0) = NaN; % das sollen fehlende Werte sein

% Kategorisieren
data(data<=2.5)= 1;
data(data>2.5)= 2;
data(isnan(data))= 0;

% Plotten
imagesc(data)
hold on
for I = 0.5:6.5
    plot([0.5 20.5], [I I], 'k', 'LineWidth', 4)
end


Der Sinn der Sache ist aber normal eher, dass der Fragesteller möglichst viel beiträgt, hier also zumindest mal (vorverarbeitete) Beispieldaten.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2013, 18:52     Titel:
  Antworten mit Zitat      
Hallo,

nochmals vielen Dank für den Code

meine zeitangaben (sollen auf die x achse abgebildet werden) sehen folgendermassen aus
dd.mm.yy

dabei möchte ich die x achse für ein jahr auslegen, dh es soll vom 01.01.1987 anfangen und soll bis 01.01.1988 laufen. wie könnt ich es lösen?

eine frage möchte ich auch noch loswerden und zwar bei der Zeile
plot([0.5 20.5], [I I], 'k', 'LineWidth', 4)

erste Parameter sind die zeitangaben
zweite parameter ist mir noch unklar: es behält die laufvariable von der forschleife.
dritte und vierte parameter ist auch klar.
der letzte parameter ist mir auch unklar.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.01.2013, 21:02     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
dabei möchte ich die x achse für ein jahr auslegen, dh es soll vom 01.01.1987 anfangen und soll bis 01.01.1988 laufen. wie könnt ich es lösen?

Datumsangaben mit DATENUM umwandeln und dann DATETICK verwenden.

Zitat:
zweite parameter ist mir noch unklar: es behält die laufvariable von der forschleife.

das ist die Höhe auf der schwarze Striche geplottet werden.

Zitat:
dritte und vierte parameter ist auch klar.
der letzte parameter ist mir auch unklar.

Linie in black mit Linienstärke 4, siehe auch
Code:


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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2013, 01:54     Titel:
  Antworten mit Zitat      
Hallo Harald,

deine Antworten sind hilfreich, vielen Dank nochmal für deine Mühe.
Es hört sich sehr einfach an, aber ich tue mich dabei sehr schwer es zu implementieren.

"Datumsangaben mit DATENUM umwandeln und dann DATETICK verwenden."

Da ich ein Anfänger bin, würde ich gerne noch eine Frage stellen:

datenum(XXXX,'dd.mm.yyyy') habe ich angewendet

und

datetick('x','mmm','keepticks') habe ich angewendet

% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ich habe es jetzt mit einer Station ausprobiert und bin zurzeit sehr verwirrt (siehe Anhang):

%Y sind datumswerte die mit datenum Funktion umgewandelt wurden: monoton aufsteigende
% Werte von 734139

data = X %100000 Dezimalzahl-Werte
% data = 1 + randn(6, 20);
data(data <= 0) = NaN; % das sollen fehlende Werte sein

% Kategorisieren
data(data <= 2.5)= 1;
data(data > 2.5)= 2;
data(isnan(data))= 0;

% Plotten
imagesc(data)
datetick('x','mmm','keepticks')

hold on

for I = 0.5:6.5
plot([0.5 20.5], [I I], 'k', 'LineWidth', 4)
end
% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Unbenannt.png
 Beschreibung:

Download
 Dateiname:  Unbenannt.png
 Dateigröße:  5.95 KB
 Heruntergeladen:  518 mal
Unbenannt.png
 Beschreibung:

Download
 Dateiname:  Unbenannt.png
 Dateigröße:  5.95 KB
 Heruntergeladen:  521 mal
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 15.01.2013, 09:19     Titel:
  Antworten mit Zitat      
Hallo,

Bitte verwende für Code die Code-Umgebung. Danke!

Zitat:
Ich habe es jetzt mit einer Station ausprobiert und bin zurzeit sehr verwirrt (siehe Anhang):

Bitte erkläre noch, was Dich verwirrt und was Du ändern möchtest.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2013, 16:20     Titel:
  Antworten mit Zitat      
Hallo,

wie auch in der Abbildung zu sehen, hat das mit der X-Achse noch nicht funktioniert (die tricks sind mit januar beschriftet).

zudem sind die kategoriserten farblich markierten streifen vertikel angelegt.

Was mich verwirrt hat, ist nur mein Code, das beispiel von Harald hat einwandfrei funktioniert.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.01.2013, 19:28     Titel:
  Antworten mit Zitat      
Hallo,

die Daten müssen so vorliegen, dass jeder Station eine Zeile von X entspricht. Ggf. musst du die Daten transponieren.

Da kein Bildschirm eine horizontale Auflösung von 100000 Punkten hat, wäre es sinnvoll, die Daten vorzuverarbeiten.

Was die Beschriftung angeht: Mit
Code:
datetick('x','mmm','keepticks')
gibst du explizit an, dass für die Beschriftung dreibuchstabige Monatskürzel verwendet werden sollen. Sinnvoller wäre hier wohl z.B.
Code:
datetick('x','yy','keepticks')

oder auch nur
Code:


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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2013, 21:06     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich würde gerne noch drei Fragen stellen:

Wie kann man nun die Y-Achse mit Strings beschriften?
Folgender Ausdruck funktioniert nicht
Code:
set(gca,'YTick',['String1'; 'String1'; 'String1; 'String1'; 'BRUSKA']),

und andere Methoden habe ich auch nicht gefunden.

Du hast im letzten Post, etwas über Vorverarbeitung von Daten gesprochen. Könntest du es näher erklären?
Wie könnte ich eine horizontale Auflösung (1 Jahr) von 100000 Punkten bestens monatlich darstellen?

und meine letzte Frage bezieht sich auf die Farbverteilung der Kategorisierten Bereiche. Die farben werden ja automatisch von Matlab vergeben . Können die farben auch manuell gesetzt werden?



Besten Dank im Voraus an harald
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.01.2013, 15:28     Titel:
  Antworten mit Zitat      
Hallo,

du musst 'YTickLabel' verwenden.

Code:
set(gca,'YTickLabel',{'String1'; 'String2'; 'String3'; ...}),


Zitat:
Wie könnte ich eine horizontale Auflösung (1 Jahr) von 100000 Punkten bestens monatlich darstellen?

Das musst du aus deinen Daten entscheiden. Man könnte z.B. sagen, dass an einem Tag ein Ausfall vorliegt, wenn irgendwann ein Ausfall vorliegt. Da musst du dir halt was basteln.

Zitat:
Können die farben auch manuell gesetzt werden?

Ja, mit colormap. Siehe allererste Antwort.

Grüße,
Harald
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.