Verhindert, dass ein bestimmter Plot-Eintrag in einer MATLAB-Plot-Legende angezeigt wird

8

Ich muss verhindern, dass ein bestimmter Plot-Eintrag in einer Matlab-Plot-Legende angezeigt wird.

Beispiel:

%Vor%

Gibt es ein Flag, das ich innerhalb des Plot-Befehls setzen kann, damit dieser bestimmte Eintrag nicht in der Legende angezeigt wird?

    
Pedro77 30.11.2016, 22:27
quelle

3 Antworten

6

Das erreichen Sie, indem Sie die Eigenschaft 'HandleVisibility' auf 'off' setzen. Beachten Sie, dass dadurch die Handles dieser Diagramme für alle Funktionen ausgeblendet werden, nicht nur für legend .

Zum Beispiel

%Vor%

erzeugt das Diagramm

    
Luis Mendo 30.11.2016, 22:52
quelle
4

Sie können die halb-dokumentierte Funktion hasbehavior verwenden, mit der Sie einzelne Diagramme in ignorieren können eine Legende, nachdem Sie den Plotbefehl ausgegeben haben.

%Vor%

Die Tatsache, dass es halbdokumentiert ist, legt nahe, dass es früher oder später in einer neueren MATLAB-Version kaputt gehen könnte. Es könnte immer noch eine bequeme Wahl für bestimmte Anwendungen sein.

Wie @stephematician bemerkt hat, ist diese MATLAB-Funktion auch in Octave nicht verfügbar, was ein weiterer Grund sein könnte, warum die anderen Antworten vorzuziehen sind.

    
Andras Deak 30.11.2016 23:28
quelle
4

Wie Luis Mendo erwähnt (und ich habe es irgendwie vermisst), ist das Handle für alle anderen Funktionen in seiner Antwort verborgen, was in den meisten Situationen in Ordnung sein wird, aber eine alternative Lösung, die identisch mit der obigen aussieht und diese nicht hat Wirkung ist:

%Vor%

Der letzte Befehl legt den Legendeneintrag für jedes Handle fest, das vom Befehl plot(x,y) zurückgegeben wird. Das erste Argument ist ein 1x3-Array von Linien-Handles, das in der Legende erscheint, und das zweite Argument ist eine 3x5-Char-Matrix, bei der jede Zeile ein Label ist.

    
stephematician 30.11.2016 23:31
quelle

Tags und Links