Bağlantısı kesilen hattı ggplot [duplicate] olarak çizin

Jan 14 2021

Ggplot kullanarak bağlantısı kesilmiş çizgilerle bir grafik oluşturmak istiyorum

# 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))

Kodu kullanma

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

Bu çıktıyı alıyorum

Ancak şöyle bir şey oluşturmak istiyorum (kırmızı çizgilerin adımlarda birbirine bağlı olmadığına dikkat edin)

Kullanmayı denedim geom_segmentama doğru yolu bulamadım

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

bunu verir

Yanıtlar

2 GregorThomas Jan 14 2021 at 06:02

groupHangi satırların bağlantılı olduğunu tanımlamak için bir estetik kullanın :

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

(Bu, örnek verileriniz için kolayca çalışır, group = zçünkü aynı zdeğere sahipse VE zdeğerler benzersizse bağlanan hatlar olmasını istersiniz . Daha sağlam bir yol, bu amaç için bir sütun ekler.)