2012-04-19 5 views
5

Der folgende Code wird verwendet, um die Vorversion .9 von ggplot2 zu verwenden. Ist das nicht mehr möglich?Fügen Sie eine vertikale Linie mit ggplot hinzu, wenn die x-Achse ein Faktor ist

df = data.frame(x = letters[1:26], y=abs(rnorm(26))) 
ggplot(df, aes(x=x, y=y)) + geom_bar() + geom_vline(xintercept='m') 

bekomme ich folgende Fehlermeldung:

Error in get(as.character(FUN), mode = "function", envir = envir) : 
    object 'm' of mode 'function' was not found 

Antwort

10

Ich weiß nicht (weiß nicht), wenn das Original verwendet, um mit alter Version von ggplot zu arbeiten, aber Sie können wie einen anderen Ansatz verwenden dieses:

ggplot(df, aes(x=x, y=y)) + geom_bar() + geom_vline(xintercept=which(df$x == 'm')) 

Hoffe diese Hilfe !!!

+0

Vielen Dank. Das hat perfekt funktioniert. Kleine Anmerkung für jeden, der dies verwendet, wenn Sie das xlim angeben, wird dies nicht korrekt funktionieren. Zum Beispiel kehre ich tatsächlich die Reihenfolge um (d. H. Am größten zum kleinsten). In diesem Fall würde das die Position vor der Umkehrung zurückgeben. Einfach zu beheben. – jbryer

Verwandte Themen