Erzwingen Sie, dass der Ursprung bei 0 beginnt

139

Wie kann ich den Ursprung / das Abfangen der y-Achse und der x-Achse in ggplot2 einstellen?

Die Linie der x-Achse sollte genau bei sein y=Z.

Mit Z=0oder einem anderen gegebenen Wert.

Jonas Stein
quelle

Antworten:

199

xlimund ylimschneide es hier nicht. Sie verwenden müssen expand_limits, scale_x_continuousund scale_y_continuous. Versuchen:

df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for

Geben Sie hier die Bildbeschreibung ein

p + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0))

Geben Sie hier die Bildbeschreibung ein

Möglicherweise müssen Sie die Einstellungen ein wenig anpassen, um sicherzustellen, dass Punkte nicht abgeschnitten werden (siehe z. B. den Punkt bei x = 5und y = 5.

A5C1D2H2I1M1N2O1R2T1
quelle
29
Ich musste auch Grenzen festlegen scale_x_continuous(expand = c(0, 0), limits = c(0,5))
:,
3
Ich denke, ein weiteres Stück kann hilfreich sein, das so etwas wie verwendet, expand=expand_scale(mult=c(0,0.1))so dass Sie immer noch die Polsterung an den oberen Enden erhalten: stackoverflow.com/a/59056123/8400969
Michael
4

Fügen Sie diese einfach Ihrem ggplot hinzu:

+ scale_x_continuous(expand = c(0, 0), limits = c(0, NA)) + 
  scale_y_continuous(expand = c(0, 0), limits = c(0, NA))

Beispiel

df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for


p + scale_x_continuous(expand = c(0, 0), limits = c(0,NA)) + 
  scale_y_continuous(expand = c(0, 0), limits = c(0, NA))

Geben Sie hier die Bildbeschreibung ein

Schließlich nehmen große Sorgfalt nicht versehentlich Daten aus Ihrem Diagramm auszuschließen. Beispielsweise kann ein position = 'dodge'Balken / Histogramm vollständig aus dem Diagramm entfernt werden, wenn sein Wert Null ist und Sie die Achse bei Null beginnen, sodass Sie ihn möglicherweise nicht sehen und wissen, dass er vorhanden ist. Ich empfehle, die Daten zuerst vollständig zu zeichnen, zu überprüfen und dann den obigen Tipp zu verwenden, um die Ästhetik des Diagramms zu verbessern.

stevec
quelle
ist es auch möglich, dies in ein neues ggplot-thema einzubauen?
Bolle
@Bolle Ich bin mir nicht sicher, aber ich bin auch daran interessiert, es herauszufinden. Sie können es als separate Frage stellen und auf hier
verlinken
Link hier für zukünftige Referenz
stevec