Ich verwende ggplot2. Ich möchte eine Handlung machen, bei der ich bestimmte Punkte am oberen Rand der Zeichenfläche mit roten Symbolen markiere. So etwas Ähnliches:ggplot2: kann ich am Rand von Plot Canvas plotten?
d <- data.frame(x=1:3, y=3:1)
markings <- function() {
d2 <- data.frame(x=c(1.5,2.5), y=3)
geom_point(data=d2, aes(x=x, y=y), col="red")
}
ggplot(data=d) + geom_point(aes(x=x, y=y)) + markings()
Das Problem ist, dass markings()
Funktion nicht weiß, wo der obere Rand der Figur ist in den gewöhnlichen Grafiken ich verwenden kann par("usr")
(der Wert 3 ist nicht bekannt.) finde den y-Wert der oberen Kante, gibt es eine Lösung, um die Punkte am oberen Rand des Graphen in ggplot2 zu erzwingen?
können Sie 'Inf' verwenden, aber das wird lebe wirklich am Rande. Andernfalls müssen Sie das Plot erstellen ('ggplot_build') und das Skalierungslimit von dort extrahieren. – baptiste
Wow, ich habe nicht darüber nachgedacht. Es ist nicht zu schön, aber kann gut genug sein :-) –
Ich weiß weitgehend über '' 'ggplot_build''' aber das würde die nette' '' marking() '' 'Funktion töten. Ich kann auch '' 'Ylim''' basierend auf den Daten setzen (' '' 3: 1''' in diesem Beispiel), aber in diesem Fall muss ich es separat berechnen und zu '' 'markings''' gehen . Ich denke, dass es eine Möglichkeit geben kann, ggplot entweder zu sagen, dass er y nicht transformiert oder vielleicht zu den darunter liegenden Rasterzeichnungswerkzeugen springt. –