LabVIEWForum.de - Plotlegende ausgeblendeter Kurven (Plots) entfernen?

LabVIEWForum.de

Normale Version: Plotlegende ausgeblendeter Kurven (Plots) entfernen?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
[attachment=18548]

Mithilfe der Propertynodes Act(ive)Plot und Plot.Visible kann ich wie im Bild ausgeführt einzelne Traces/Kurven im Waveformgraph ausblenden. Leider habe ich noch keine Möglichkeit gefunden, auch die Plotlegende dahingehend zu beeinflussen, dass für nichtangezeigte Traces/Kurven auch der Eintrag in der Plotlegende dazu entfernt wird.
Warum blende ich Traces/Kurven aus? -> Weil die entsprechende Trace/Kurve nicht genutzt wurde und so keine Daten enthält bzw. ein 0 Array.

Beispielsweise wurden Traces/Kurven 1 und 3 genutzt und enthalten ernsthafte Daten. So möchte ich in der Plotlegende:
- Trace1
- Trace3
stehen haben.
Werden alle genutzt:
- Trace1
- Trace2
- Trace3

Weiss jemand Rat? Falls auch ohne Propertynodes und mit anderen Tricks möglich immer her damit!
Vielen Dank.


EDIT:
Mir ist gerade aufgefallen, dass ich im Bild oben bei der Pfeilbeschriftung einen Fehler drin habe, bzw nicht der volle Text angezeigt wurde, dort sollte stehen:
"Insgesamt 3 Kurvendaten (TraceX data, X=1,2,3), ist ein Trace aus (TraceXOn = false) besteht das entsprechende TraceX data Array aus Nullen.
Ein Multiplot-Graph (egal ob Waveform oder XY) besteht eigentlich immer aus einem (vereinfacht) "Array of Plots".

So, wenn du jetzt dein Array so zusammenbaust, dass immer die Reihenfolge "Trace 1, Trace 2, Trace 3" vorliegt, dann wird das auch immer so in der Plotlegende sein, selbst denn der Plot "Trace 2" keine Daten enthält. Das ist so, da kommst du nicht dran vorbei.

Einzige Lösung aus meiner Sicht: Wenn nur "Trace 1" und "Trace 3" Daten enthalten, dann darf dein "Array of Plots" auch nur diese Plots enthalten.

Gruß, Jens
' schrieb:Einzige Lösung aus meiner Sicht: Wenn nur "Trace 1" und "Trace 3" Daten enthalten, dann darf dein "Array of Plots" auch nur diese Plots enthalten.

@LabVIEWDompteur
Wobei man aber auch den Nachteil dieser Sache nicht verschweigen sollte: Es änderen sich dann die Plotfarben, und das ist viel schwerwiegender als wenn die nicht mehr sichtbare Kurve noch in der Plotlegende steht. Also: Wenn man drei Plots "Weg" (weiß) , ""Kraft" (rot) , Druck (grün) hat, und nimmt die Kurve "Kraft" aus dem Array heraus, dann ist "Druck" jetzt der zweite Plot, und aus dem grünen Druckverlauf wird ein roter Druckverlauf. Und das ist alles andere als Anwenderfreundlich. Man kann die Sache mit den Farben natürlich ändern, indem man über Eigenschaftknoten die Farben anpasst - ist aber unmständlich.

Habe das Ausblenden der Plots gerade jetzt in einer Anwendung so gelöst, und bilde mir richtig was ein auf diese mir elegant erscheinende Lösung:
[attachment=18551]
(Bei den Häkchen handelt es sich um einen Cluster mit transparentem Hintergrund, den ich über die Plotlegende gelegt habe)

Eine weiter Lösungsmöglichkeit wäre, die Plotlegende auszublenden und durch eine handgemachte Plotlegende zu ersetzen. Also z.B alle Plotnamen mit Schriftfarbe= Plotfarbe. Dabei gehen aber die Plotattribute (z.B Strichstärke, gepunktet Linie) in der "Legende" verloren.

Tip: Das VI ist einmal mehr ein Musterbeilspiel für die überflüssige Verwendung von Sequenzstrukturen. Ein Eigenschaftknoten wird sequentiell von oben nach unten abgearbeitet. Es hätte statt dieser vielen Rahmen mit Eigenschafsknoten - jeder davon in einem eigenen Sequenzrahmen - ein einziger großer Eigenschaftsknoten ohne Rahmen genügt, z.B so ähnlich wie hier:
[attachment=18552]
Hab jetzt der Einfachkeit halber eine Unterscheidung mit eingebaut welche beurteilt ob der Trace genutzt wird und ändere so nur die Legendenbeschriftung, sofern ein Trace nicht genutzt wird. Heisst alle Tracelegenden werden angezeigt aber ausgeblendete mit Beschriftung OFF.

@Lucki: Danke für den Hinweis bzgl. der Sequenz, die Vermeidung derer macht das Ganze nebenbei auch viel einfacher zu handhabenSmile.
' schrieb:Hab jetzt der Einfachkeit halber eine Unterscheidung mit eingebaut welche beurteilt ob der Trace genutzt wird und ändere so nur die Legendenbeschriftung, sofern ein Trace nicht genutzt wird. Heisst alle Tracelegenden werden angezeigt aber ausgeblendete mit Beschriftung OFF.
Also wenn Du mich fragst: An dem leeren schwarzen Feld in der Plotlegende ist doch ein augeblendeter Plot deutlich genug als ausgeblendet markiert. Wenn Du zusätzlich noch den Plotnamen unterdrückst, ist das nicht nur überflüssig, sondern es trägt eher zur Desinformation als zur Information bei, da man dann nicht mehr sieht, welcher Plot ausgeblendet ist.
@Lucki
ich hab genau dass Problem, dass sich die Farbe immer ändert beim Ausblenden, was ziemlich ungünstig ist. Könntest du mir vielleicht mal kurz erklären wie du das gemacht hast, dass die Farbe gleich bleibt.
Hab nur sehr wenig LV Erfahrung, wär dir daher sehr dankbar, wenn man mir bei der Lösung behilflich ist.
lg
' schrieb:Könntest du mir vielleicht mal kurz erklären wie du das gemacht hast, dass die Farbe gleich bleibt.
Hier ein Beispiel. Aber Warnung, es wurde getrickst! Das Aus-und Einschalten der Plots geschieht mit einem Cluster-Bedienelement, welches transparent ist und so raffiniert in die Plotlegende hineinverlegt wurde, daß es ausssieht, ols ob die Häkchen zum An/Abwählen der Plots ein integrierter Bestandteil der Plotlegende wären. Verschiebe mal das Diagramm, dann kommt der Schwindel heraus.
[attachment=19583]
Lv86_img[attachment=19584]
Hallo Lucki
dankeschön kann bloß leider da VI nicht öffnen. Aber das Bild hilft mir schon mal etwas weiter.
lg
' schrieb:kann bloß leider da VI nicht öffnen. Aber das Bild hilft mir schon mal etwas weiter.
Kein Problem..
Lv85_img[attachment=19618].
Hey Lucki,
Wie initialisiert man denn die Kanäle, damit der Graph weiß, welche Daten er plotten soll?
Also ich meine, wo ist die Verbindung zu den Signalen, wo und wie gibt man diese ein?
Das ist genau das, was ich gerne verwenden würde für meine 19 Sensoren, die ich miteinander vergleichen will. Aber nun weiß ich nicht, wie ich die Verbindung herstellen kann.
Kannst du es mir kurz erklären?
Seiten: 1 2
Referenz-URLs