2017-08-02 122 views
1

我有一個數據集,其中包含200個不同的組,這可能需要一個介於0和200之間。我想爲每個組繪製一條線,因此總共200行,並有圖例是「數字」。我知道如何用一個因素來做到這一點,但不能讓它起作用。不是最好的例子:使用ggplot繪製幾條「數字」線

library(tidyverse) 


df <- data.frame(Day = 1:100) 
df <- df %>% mutate(A = Day + runif(100,1,400) + rnorm(100,3,400) + 2500, 
        B = Day + rnorm(100,2,900) + -5000 , 
        C = Day + runif(100,1,50) + rnorm(100,1,1000) -500, 
        D = (A+B+C)/5 - rnorm(100, 3,450) - 2500) 

df <- gather(df, "Key", "Value", -Day) 
df$Key1 <- apply(df, 1, function(x) which(LETTERS == x[2])) 

ggplot(df, aes(Day, Value, col = Key)) + geom_line() # I would to keep 4 lines, but would like have the following legend 

ggplot(df, aes(Day, Value, col = Key1)) + geom_line() # Not correct lines 
ggplot(df, aes(Day, Value)) + geom_line(aes(col = Key1)) # Not correct lines 

可能是重複的,但我不能找到答案,你猜有什麼小是不正確。

回答

3

這是你的意思嗎?我不確定,因爲你說你想要200行,但在你的代碼中,你說你想要4行。

ggplot(df, aes(Day, Value, group = Key, col=Key1)) + geom_line() 

使用group爲您提供了不同的線路,使用col爲您提供了不同的顏色。

+0

謝謝。 200行來自我的「真實數據」。 – MLEN