Zeichnen Sie die getrennte Zeile in ggplot [Duplikat].

Jan 14 2021

Ich möchte mit ggplot ein Diagramm mit getrennten Linien erstellen

# Sample data
x <- seq(1:100)
y <- c(rnorm(25, mean = 1, sd = 1), rnorm(25, mean = 2, sd = 1), rnorm(25, mean = 3, sd = 1), rnorm(25, mean = 4, sd = 1))
z <- rep(1:4, each = 25)
tempdf <- data.frame(cbind(x,y,z))

Code verwenden

ggplot(data=tempdf, aes(x = x)) +
    geom_line(aes(y = y), color = "blue") + 
    geom_line(aes(y = z), color = "red", size = 1)

Ich bekomme diese Ausgabe

Ich möchte jedoch so etwas wie erstellen (beachten Sie, dass rote Linien bei Schritten nicht verbunden sind)

Ich habe es versucht geom_segment, konnte aber nicht den richtigen Weg finden

ggplot(data=tempdf, aes(x = x)) +
    geom_line(aes(y = y), color = "blue") + 
    geom_segment(x = x, y = z, xend = x+25, yend = z)

gibt dies

Antworten

2 GregorThomas Jan 14 2021 at 06:02

Verwenden Sie eine groupÄsthetik, um zu definieren, welche Zeilen verbunden sind:

ggplot(data=tempdf, aes(x = x)) +
    geom_line(aes(y = y), color = "blue") + 
    geom_line(aes(y = z, group = z), color = "red", size = 1)

(Dies funktioniert problemlos für Ihre Beispieldaten, group = zda Sie möchten, dass Linien verbunden werden, wenn sie denselben zWert haben UND die zWerte eindeutig sind. Eine robustere Methode würde zu diesem Zweck eine Spalte hinzufügen.)