Wenn ich ggplot verwende, kann ich shape
21-25 einstellen , um Formen zu erhalten, die eine unabhängige Einstellung für die Farben intern ( fill
) und border ( col
) haben, wie folgt:
df <- data.frame(id=runif(12), x=1:12, y=runif(12))
ggplot(df, aes(x=x, y=y)) +
geom_point(aes(fill=id, size=id), colour="black", shape=21)
Ich kann jedoch nicht herausfinden, wie die Dicke der Formränder gesteuert werden kann, entweder absolut oder als ästhetische Abbildung. Ich stelle fest, dass wenn ich einen lwd
Wert setze, dies die size
Ästhetik überschreibt :
ggplot(df, aes(x=x, y=y)) +
geom_point(aes(fill=id, size=id), colour="black", shape=21, lwd=2)
Wie steuere ich die Randdicke?
Es fühlt sich ein bisschen hackig an, aber Sie können einen " Hintergrund " -Punktsatz mit der Größe hinzufügen, die für die ästhetische Zuordnung festgelegt wurde, sowie eine kleine Konstante, um den Rand der Punkte zu vergrößern . Spielen Sie mit der Konstante, um die gewünschte Randbreite zu erhalten.
Sie müssen auch die Größenlegende deaktivieren, um zu verhindern, dass die Legende in der Grafik angezeigt wird ...
ggplot(df, aes(x=x, y=y)) + geom_point(aes(size=id+0.5), colour="black" , show_guide = FALSE )+ scale_size( guide = "none" )+ geom_point(aes(fill=id, size=id), colour="black", shape=21)
quelle
Eine andere Lösung besteht darin, das Diagramm in R zu erstellen und es dann in eine SVG-Datei zu exportieren. Die Linienbreite kann dann mit einer Vektorgrafik-Bearbeitungssoftware (z. B. Inkscape) geändert werden. Diese Methode ist besonders nützlich, wenn sich Datenpunkte überlappen.
quelle