使用ggplot绘制几条“数字”线

时间:2017-08-02 12:15:55

标签: r ggplot2

我有一个包含200个不同组的数据集,可能需要介于0到200之间。我想为每个组绘制一条线,所以总共有200行,并且图例为“数字”。我知道如何用一个因素来做到这一点,但是无法让它发挥作用。不是最好的例子:

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

可能是重复,但我找不到答案,并猜测有一些小的不正确。

1 个答案:

答案 0 :(得分:3)

这是什么意思?我不确定,因为你说你想要200行,但在你的代码中你说你想要4行。

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

使用group为您提供不同的行,使用col为您提供不同的颜色。