2016-08-31 1 views
2

Ich möchte drei Punkte "a", "b" und "c" mit geom_line verbinden, aber es verbindet nur "ab" und "bc", aber nicht "ca", wie kann ich das erreichen mit geom_line oder geom_path, anstatt geom_polygon?In ggplot 2, wie man die Start- und Endpunkte in geom_line verbindet

library(ggplot2) 
df <- data.frame (line =c ("a", "b", "c"), x = c(1, 2, 3), y = c(5, 2, 5)) 

ggplot() + 
geom_path(data = df, aes (x = x, y = y, color = line)) 
+0

Gute Frage! Willst du die Legende auch? Hast Du es versucht? Wenn ja, bitte teilen Sie Ihren Code. – watchtower

Antwort

1

Hier ist eine Art und Weisen Sie es, indem Sie den ersten Punkt in Ihrem Vektor tun können, ein Liniensegment parallel zur x-Achse zu zeichnen. Im Wesentlichen müssten Sie den vollständigen Pfad zu geom_path angeben, wenn Sie ein Polygon erstellen möchten.

Hinweis: Zeile d:

df <- data.frame (line =c ("a", "b", "c","d"), x = c(1, 2, 3,1), y = c(5, 2, 5,5)) 

    ggplot()+ 
     geom_path(data = df, aes (x = x, y = y)) 

hoffe, das hilft!

+0

Es funktioniert, aber es ist immer noch ein wenig schwierig, vor allem, wenn ich die Legende verwenden. –

3

Sie müssen die erste Zeile am Ende wiederholen, um ein schließendes Polygon zu erhalten, ohne geom_polygon zu verwenden.

ggplot(rbind(df, head(df, 1)), aes(x = x, y = y, color = line, group = 1)) + 
    geom_path() 

enter image description here

Verwandte Themen