2016-08-15 51 views
0

下面是数据集,df.test:遇到问题使用GGPlot绘制在同积多行[数据集包括]

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”。我一直在寻找所有的样本数据框架,在这种情况下,我会空着。

请指教。

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

+5

可能[复制](http://stackoverflow.com/questions/17150183/r-plot-multiple-lines-in-one-graph)。和[这篇文章](http://stackoverflow.com/questions/35586520/when-creating-a-multiple-line-plot-in-ggplot2-how-do-you-make-one-line-thicker)给出了信息关于'aes(x)' – cuttlefish44

+0

这个问题缺乏你试图想出的东西的信息。你能否提供你想要在你的图表中绘制的内容? –

+0

'ggplot(df.test,aes(x = MSLpredictions,y = BPLPredictions))+ geom_line()'会为您发布的所有数据提供一行。为了得到两条不同颜色的线条,你需要一个具有两个不同值的分类列。例如,'df.test $ group = rep(c(“A”,“B”),10)',那么ggplot(df.test,aes(x = MSLpredictions,y = BPLPredictions,color = group) )+ geom_line()' – eipi10

回答

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) 
+0

Thnaks的_group_列中创建两列,这肯定有帮助。现在,为了让事情变得更复杂一些,假设我有4个更多的列是两组预测的置信区间的上限和下限,那么这将如何工作。我知道如何使用ggplot创建置信区间功能区,但不知道如何将它们全部绘制在同一个绘图上。 – madsthaks

+0

@ user3552144考虑询问作为单独的问题 –

+0

我同意这可能是最好的单独询问。简而言之,对于您想要使用的每种ggplot美学,您都需要一个专栏。因此,在这种情况下,您的数据将是“较长的”,并且包含错​​误术语的另一列。假设这个列被称为“错误”,你的'aes'看起来像'aes(x = index,y = value,ymin = value - error,ymax = value + error)'。 – jdobres