Gibt es eine Möglichkeit, den Abstand zwischen Legendenelementen in ggplot2 zu ändern? Ich habe derzeit
legend.position ="top"
Dies erzeugt automatisch eine horizontale Legende. Der Abstand der Elemente ist jedoch sehr eng beieinander und ich frage mich, wie ich sie weiter auseinander platzieren kann.
opts
die abgeschrieben wird.Antworten:
ggplot2 v3.0.0
veröffentlicht im Juli 2018 hat Arbeitsoptionen zu ändernlegend.spacing.x
,legend.spacing.y
undlegend.text
.Beispiel: Erhöhen Sie den horizontalen Abstand zwischen den Legendenschlüsseln
Hinweis: Wenn Sie nur den Abstand rechts vom Legendentext erweitern möchten, verwenden Sie
stringr::str_pad()
Beispiel: Verschieben Sie die Beschriftungen der Legendenschlüssel nach unten und vergrößern Sie den vertikalen Abstand
Beispiel: für
scale_fill_xxx
&guide_colorbar
Bei vertikalen Legenden
legend.key.size
vergrößert die Einstellung nur die Größe der Legendenschlüssel, nicht den vertikalen Abstand zwischen ihnenUm den Abstand zwischen den Legendentasten zu vergrößern, muss die
legend-draw.r
Funktion geändert werden . Weitere Informationen finden Sie in dieser Ausgabequelle
Ich denke, die beste Option ist,
guide_legend
innerhalb von zu verwendenguides
:Beachten Sie die Verwendung von
default.unit
, keingrid
Paket muss geladen werden.quelle
Eine einfache Korrektur, die ich verwende, um Platz in horizontalen Legenden hinzuzufügen. Fügen Sie einfach Leerzeichen in die Beschriftungen ein (siehe Auszug unten):
quelle
scale_fill_manual(values=values, labels=setNames(paste(labels, " "), entries))
.Nun, das
opts
ist inggplot2
Paket, Funktion veraltettheme
sollte stattdessen die verwendet werden:quelle
Passen Sie die Ränder des Designelements an, um den Abstand zwischen Einträgen in einer Legende zu erhöhen
legend.text
.So fügen Sie rechts neben jeder Legendenbezeichnung 30pt Platz hinzu (kann für eine horizontale Legende nützlich sein):
So fügen Sie links neben jeder Legendenbezeichnung 30pt Platz hinzu (kann für eine vertikale Legende nützlich sein):
für ein
ggplot2
Objektp
. Die Schlüsselwörter sindlegend.text
undmargin
.[Hinweis zum Bearbeiten: Als diese Antwort zum ersten Mal veröffentlicht wurde, gab es einen Fehler. Der Fehler wurde jetzt behoben]
quelle
Der beste Ansatz (im Jahr 2018) ist die Verwendung
legend.key.size
unter demtheme
Objekt. (siehe zB hier ).Dies ist ganz einfach, wenn Sie Folgendes verwenden
theme_bw()
:Dies funktioniert jedoch ansonsten nicht ganz so gut (z. B. wenn Sie den grauen Hintergrund auf Ihrem Legenden-Symbol benötigen):
Beachten Sie, dass weiße Quadrate den Legendentitel blockieren (und schließlich das Diagramm selbst, wenn wir den Wert weiter erhöhen).
Ich habe noch keine Lösung gefunden, um das oben genannte Problem zu beheben ... Lassen Sie mich in den Kommentaren wissen, wenn Sie eine Idee haben, und ich werde sie entsprechend aktualisieren!
$layers
...quelle
legend.key
transparent:theme(legend.key = element_rect(size = 30,color=alpha("transparent",0)))
Aus Koshkes Arbeit an ggplot2 und seinem Blog ( Koshkes Blog )
Geben Sie
theme_get()
die Konsole ein, um andere bearbeitbare Legendenattribute anzuzeigen.quelle
Verwenden Sie eines davon
quelle