Verfasst am: 29.01.2013, 12:50
Titel: verdeckte Linie selektieren?
Wenn ich mehrere deckungsgleiche Linien in einem Plot habe (z.B. Filter in fvtool) wie kann ich im GUI bestimmte davon selektieren, um zum Beispiel deren Darstellung zu editieren?
Per Maus erwische ich ausnahmslos die sichtbare Linie im Vordergrund; diverse Tasten-Mausklick-Kombinationen habe ich schon probiert - leider ohne Erfolg. Ein Pull-Down Menu (wie bei den furchtbaren Exceldiagrammen) scheint's auch nicht zu geben. Aber irgendwie muss das doch möglich sein!
Oh, der Frage kann ich mich gleich anschließen. Bzw. ich wüsste dann auch gleich gerne, wie man das grafisch am klügsten Darstellt, wenn sich in einem 2D-Plot zwei Linien teilweise überlagern und man in der Standard-Darstellung erst mal nur noch eine sieht.
Verfasst am: 29.01.2013, 17:58
Titel: Re: verdeckte Linie selektieren?
Hallo benwin,
Ich möchte euch ja nicht enttäuschen. Aber zunächst würde ich mal behaupten, dass es in der Natur verdeckter Linien liegt, dass die darunter liegende verdeckt ist. Andernfalls wäre sie ja nicht verdeckt.
Man benötigt also einen Workaround, um eine solche Linie auswählen zu können. Z.B. http://www.mathworks.com/matlabcentral/fileexchange/21799. Wenn es noch kein Popup-Menü gibt, kann man ein solches erstellen, z.B. als Kontext-Menü des AXES-Objektes. Dann kann man z.B. per UISTACK ein ausgewähltes Objekt in den Vordergrund holen.
Hübscher Satz am Anfang. Zum Wesen verdeckter Linien würd ich allerdings hinzufügen, dass es nicht in Ihrer Natur liegt, im Editiermodus nicht selektierbar zu sein ;)
Wundert mich einfach, das im Editiermodus Klicken die einzige Möglichkeit zur Auswahl von Objekten einer Figure ist. Aber ich bin auch noch relativ frisch bei Matlab, vielleicht stellt sich irgendwann das Gefühl ein, das müsse so sein.
Danke für den clickableLegend-Link, das ist ein großartiger Workaround!
Und wie stellt man nun (teilweise) überlagerte Linien in einem Plot dar, sodass man sie beide noch erkennen kann und nicht nur die zuletzt gezeichnete? Vielleicht so versetzt gestrichelt?
Die Linien versetzt zu zeichnen wäre eine schlechte Idee, da dies ja die Werte verfälschen würde. Man kann aber in gewissen Abständen Marker verwenden:
Aber die grundsätzliche Regel bleibt: Wenn zwei Kurven in einem Diagramm den gleichen Verlauf haben, ist eine Darstellung als Diagramm ungeeignet. Die anschauliche Visualisierung von Ergebnissen ist ein anspruchsvoller und wichtiger Teil der wissenschaftlichen Arbeit. Deshalb kann man nicht immer die gleichen Standard-Methoden anwenden.
Nochmal danke, auf die Idee mit Marker bin ich auch gekommen, dann aber nur soweit, mich drüber zu zu ärgern, dass jeder Datenpunkt mit Marker dargestellt wird. Die Funktion selektiv zu kopieren ist elegant.
Ansonsten erstelle ich öfter Diagramme, um meinen Code oder Funktionalität zu überprüfen als für eine "anschauliche Visualisierung von Ergebnissen". Und das sollte dann mit einer Zeile erledigt sein.
Wenn ich drei Filter f,g,h definiere und fvtool(f,g,h) nur f und g darstellt, sollte es möglich sein, mit ein oder zwei Klicks herauszufinden, von welcher h verdeckt ist, ob es evtl. außerhalb des dargestellten Wertebereichs liegt oder bereichsweise nicht definiert ist.
Wie gesagt, es geht (mir) nicht um die Darstellung, sondern um die Editierbarkeit, die auf Objekte im Vordergrund beschränkt ist. Diese Einschränkung ist echt unzeitgemäß, und ein alternativer Selektor (z.B. Pulldown-Feld oder Fokuswechsel mittels "Tab") würde das Problem lösen.
Die Linien versetzt zu zeichnen wäre eine schlechte Idee, da dies ja die Werte verfälschen würde.
Ja, ich meinte auch nur das Gestrichelte versetzt. D.h. man zeichnet beide Linien gestrichelt, aber dann nicht so, dass sich wieder beides überdeckt, sondern dass die Striche der 2. Linie genau in die Lücken der 1. Linie fallen. Eine blaue Linie, die eine rote überdeckt, würde also zu einer rot-blau gestrichelten Linie. Scheint aber nicht umsetzbar zu sein mit dem Plot-Browser.
Deine Lösung ist natürlich eine Möglichkeit, aber wenn ich sonst in allen anderen Diagrammen durchgängige Linien plotte, ist das doch etwas unpassend, wenn ich dann plötzlich nur einzelne Datenpunkte anzeige?!
Aber vielleicht kann ich meine gesamte Darstellung noch mal überdenken...
Wenn Du die Linie im Vordergrund strichelst, siehst Du an den Durchbrüchen die im Hintergrund. Andere Möglichkeit: Strichstärke im Hintergrund erhöhen, so dass die Linie beidseitig übersteht. Aber das sind natürlich beides nur Krücken.
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.