Hi,
ich möchte Werte aus einem Array in einem Plot darstellen, und zwar so, dass ab einem bestimmten Index die Kurve eine andere Farbe hat.
Dieser Index wird geliefert durch das Maximum der Array Werte. Das klappt aber leider nicht.
Ich bin ein LabVIEW Anfänger :-)
[
attachment=8514][
attachment=8515]
' schrieb:ich möchte Werte aus einem Array in einem Plot darstellen, und zwar so, dass ab einem bestimmten Index die Kurve eine andere Farbe hat.
Das geht auch nicht mit LV!
Als Workaround hat sich folgendes als hilfreich erwiesen:
Du stellst zwei identische Kurven übereinander (mit unterschiedlichen Farben) dar. Bei der einen Kurve ersetzt du die Werte ab deinem Index mit "NaN" ( = "Not a Number", einfach in das Double-Feld des Array eintragen (manuell oder programmatisch mit "Replace Array Subset")), damit werden diese Punkte nicht dargestellt und die darunterliegende andere Kurve wird sichtbar!
Gruss
Achim
EDIT: Mal wieder zu schnell und die Bilder nicht angeguckt...das machst du ja bereits, sollte klappen...dann lad mal dein VI hoch ums anzugucken...Tststs, was hab ich nur gedacht....
EDIT2: Wenn du die Ersetzung in der FOR-Schleife machst, musst du auch das Array, in dem du ersetzt hast, in den nächsten Schleifendurchlauf mitnehmen, sonst wird immer nur im Ursprungsarray je ein Wert ersetzt! Das "mitnehmen" geht, indem du ein Schieberegister verwendest! Schieberegister: Rechtsklick auf den Schleifenrand, "Add Shift Register"...daran dann dein Ursprungsarray von aussen anschließen, und in der Schleife wieder abgreifen und das veränderte Array (mit der Ersetzung) wieder am rechten Schleifenrand ins Register einspeisen!
' schrieb:Du stellst zwei identische Kurven übereinander (mit unterschiedlichen Farben) dar. Bei der einen Kurve ersetzt du die Werte ab deinem Index mit "NaN" ( = "Not a Number", einfach in das Double-Feld des Array eintragen (manuell oder programmatisch mit "Replace Array Subset")), damit werden diese Punkte nicht dargestellt und die darunterliegende andere Kurve wird sichtbar!
Hallo Achim, genau das versuche ich ja - siehe die 2 jpgs.
Aber da ist irgendwo ein Fehler - da ich trotzdem nur 1 Kurve in einer Farbe erhalte....
' schrieb:Hi,
ich möchte Werte aus einem Array in einem Plot darstellen, und zwar so, dass ab einem bestimmten Index die Kurve eine andere Farbe hat.
Dieser Index wird geliefert durch das Maximum der Array Werte. Das klappt aber leider nicht.
Das habe ich hier schon mal aufbereitet. Suchet, so werdet ihr finden. Oder Dir genügt das
[
attachment=8516]oder das:[
attachment=8518]
' schrieb:Hallo Achim, genau das versuche ich ja - siehe die 2 jpgs.
Aber da ist irgendwo ein Fehler - da ich trotzdem nur 1 Kurve in einer Farbe erhalte....
siehe meine "EDIT's"...ich hab gepennt...
Das mit den Schieberegistern habe ich jetzt eingebaut - klappt aber doch nicht....
[
attachment=8525]
(VI LV 6.1)
' schrieb:Das mit den Schieberegistern habe ich jetzt eingebaut - klappt aber doch nicht....
So sehr falsch ist es eigentlich nicht, aber man kann es ohne Schieberegister viel billiger haben:
[
attachment=8526]
Danke - euch beiden, mit diesen Anregungen kam ich dann zu meinem gewünschten Ergebnis.
Wen es interessiert - hier das VI.
[
attachment=8531]
(VI LV 6.1)
Ich habe jetzt versucht das auch bei einem XY-Graph anzuwenden, allerdings bleibt der leer.
Woran liegt das?
[
attachment=8564]
(VI LV 6.1)
' schrieb:Ich habe jetzt versucht das auch bei einem XY-Graph anzuwenden, allerdings bleibt der leer. Woran liegt das?
Wie kommst Du überhaupt auf die Idee, dass das funktionieren könnte? Die übergebenen Punkte (x,y) enthalten im roten Teil der Kurve (NaN,Zahl) und in weißen Teil (Zahl,NaN), also mit anderen Worten: es gibt keinen einzigen darstellbaren Punkt.
Du gehst hier offenbar von der falschen Annahme aus, das die NANs gar nicht existieren
[
attachment=8566]