Legenden in R-Plots

8

Ich möchte die Legende in einem Diagramm in 2 aufteilen, so dass die ersten 3 Elemente vom vierten Element durch eine Lücke von etwa 1 Zeilenhöhe getrennt sind. Ich habe zunächst versucht, vor dem ersten Element einen Zeilenumbruch hinzuzufügen:

%Vor%

aber dies scheint die Lücke zwischen allen Elementen zu vergrößern (ist das dokumentierte Verhalten?)

Ich habe dann zwei separate Legenden verwendet, indem ich die Ränder auf "n" und lines() eingestellt habe, um die Ränder zu rekonstruieren (gibt es übrigens eine Möglichkeit, nur 1 Rand einer Legende zu unterdrücken?); Obwohl dies funktioniert, erfordert es viel Versuch und Irrtum mit den Werten von inset .

Die Standardwerte von inset in legend() sind c(0,0) , aber diese werden offensichtlich beim ersten Aufruf von legend() angepasst, basierend auf der Länge des Textes in den Elementen dieser Legende. Gemäß ?legend enthält der Wert eines legend() -Aufrufs das

"numerische Vektoren der Länge Länge (Legende), geben die x-und y-Koordinaten der Legende Text (s)."

Gibt es trotzdem eine Umwandlung in geeignete Werte für den inset des 2. Aufrufs, so dass die Elemente beider Legenden aneinandergereiht sind?

    
ChrisW 02.03.2012, 13:56
quelle

1 Antwort

22

Geben Sie nur NAs in den Argumenten an, in denen der Space sein soll. Sie müssen alle Legendenargumente als Vektoren angeben.

%Vor%

Alternativ können Sie, wenn Sie 2 Aufrufe von legend() für feinere Steuerelemente vornehmen möchten, trace=TRUE in den Argumenten angeben und die benötigten x- und y-Koordinaten zurückgeben.

    
tim riffe 02.03.2012, 14:30
quelle

Tags und Links