无法使用GGPlot在同一绘图上绘制多条线[包含数据集]

时间:2016-08-15 01:50:27

标签: r ggplot2

这是数据集,df.test:

   MLSpredictions BPLPredictions
1        1.392213      0.8326201
2        1.392213      0.8662049
3        1.448370      0.9011444
4        1.448370      1.0146486
5        1.448370      0.9374932
6        1.448370      0.9374932
7        1.448370      0.9011444
8        1.448370      1.0981538
9        1.448370      1.0555757
10       1.506792      1.0555757
11       1.506792      1.1424492
12       1.506792      1.0555757
13       1.567570      1.0981538
14       1.567570      1.0981538
15       1.567570      1.1424492
16       1.567570      1.1424492
17       1.567570      1.1885314
18       1.567570      1.1424492
19       1.567570      1.1885314
20       1.630800      1.2364723

我知道GGPlot要求您将所有信息都包含在我认为我在上面做过的相同数据框中。

这是我的出发点:

ggplot(df.test, aes(x = 1:20, y = , color = ))

由于我的专栏名称不同,我不确定要为" y"放置什么。我一直在寻找可以在这个例子中使用的示例数据帧,但我是空的。

请指教。

[编辑]我想想出一个情节,在同一个情节中有两条不同颜色的线条。

1 个答案:

答案 0 :(得分:1)

ggplot期望输入数据采用所谓的“长”格式。在长数据集中,1列包含实际数据值(无论它们是什么),所有其他列都告诉我们这些数据点的特征,例如值可能是什么类型的度量,它们是哪个组的一部分您的数据的长版本可能如下所示:

index         variable      value
    1   MLSpredictions   1.392213
    2   MLSpredictions   1.392213
  ...              ...        ...
    1   BPLPredictions  0.8326201
    2   BPLPredictions  0.8662049
  ...              ...        ...

然后你可以用:

获得你想要的情节
my.plot <- ggplot(data = long.data, aes(x = index, y = value, color = variable)) +
           geom_line()

有几种方法可以将“宽”数据转换为长格式,其中一种方法是:

library(dplyr)
library(tidyr)

df$index <- 1:20
long.data <- gather(df, variable, value, -index)