Ich zeichne folgendes:
library(ggplot2)
carrots <- data.frame(length = rnorm(500000, 10000, 10000))
cukes <- data.frame(length = rnorm(50000, 10000, 20000))
carrots$veg <- 'carrot'
cukes$veg <- 'cuke'
vegLengths <- rbind(carrots, cukes)
ggplot(vegLengths, aes(length, fill = veg)) +
geom_density(alpha = 0.2)
Angenommen, ich möchte nur den Bereich zwischen x=-5000
und 5000
anstelle des gesamten Bereichs zeichnen.
Wie kann ich das machen?
Grundsätzlich haben Sie zwei Möglichkeiten
_scale_x_continuous(limits = c(-5000, 5000))
_
oder
_coord_cartesian(xlim = c(-5000, 5000))
_
Wobei der erste alle Datenpunkte außerhalb des angegebenen Bereichs entfernt und der zweite nur den sichtbaren Bereich anpasst. In den meisten Fällen würden Sie den Unterschied nicht sehen, aber wenn Sie irgendetwas an die Daten anpassen, würden sich wahrscheinlich die angepassten Werte ändern.
Sie können auch die Kurzschriftfunktion xlim
(oder ylim
) verwenden, mit der wie mit der ersten Option Datenpunkte außerhalb des angegebenen Bereichs entfernt werden:
_+ xlim(-5000, 5000)
_
Weitere Informationen finden Sie in der Beschreibung von coord_cartesian
.
Das RStudio-Spickzettel für _ggplot2
_ macht dies visuell deutlich. Hier ist ein kleiner Ausschnitt aus diesem Spickzettel:
Verteilt unter CC BY.
Kurzer Hinweis: Wenn Sie auch coord_flip()
verwenden, um die x- und die y-Achse zu spiegeln, können Sie mit coord_cartesian()
keine Bereichsgrenzen festlegen, da diese beiden Funktionen exklusiv sind (siehe hier ).
Glücklicherweise ist dies eine einfache Lösung. Setzen Sie Ihre Grenzen innerhalb von coord_flip()
wie folgt:
p + coord_flip(ylim = c(3,5), xlim = c(100, 400))
Dies ändert nur den sichtbaren Bereich (d. H. Entfernt keine Datenpunkte).