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.

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.


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.