2

I have a csv file and I load the data in df.

time     d          e         f      id
 1 -0.3813535 -0.3766915 1.2365178    a
 2 -0.5192448 -0.8325136 0.7229763    a
 3  0.3292604 -0.3832252 1.2250516    b
 4  0.5438868 -1.1085977 1.3113659    b
 5 -0.6883436 -1.9918862 0.5804269    a
 6  0.7651908 -0.6465595 1.1116675    b
 7  0.8359222 -0.1933391 2.3156759    a
 8  1.5074557 -0.1650911 2.3737362    b
 9  0.7095554  2.2623272 3.0409351    a
10  0.7137618  2.7033626 2.5880434    b

Actually I want to take 2 plots for id a and b.

What I have until now are plot for time

 library(ggplot2)
 library(reshape)
   df <- melt(df ,  id = 'time')

   ggplot(df, aes(time,value)) + geom_line() + facet_grid(series ~ .)

Update data format:

 time     d             id
 1 -0.3813535     a
 2 -0.5192448     a
 3  0.3292604     b
 4  0.5438868     b
 5 -0.6883436     a
 6  0.7651908     b
 7  0.8359222     a
 8  1.5074557     b
 9  0.7095554     a
10  0.7137618     b
4

1 回答 1

4

从您的问题来看,尚不清楚情节应该如何看待,但至少有两种可能的方式。

在乞求融化您的数据(使用库reshape2)并使用列timeidas id.vars=

library(reshape2)
df.long <- melt(df ,  id.vars = c("time","id"))
head(df.long)
  time id variable      value
1    1  a        d -0.3813535
2    2  a        d -0.5192448
3    3  b        d  0.3292604
4    4  b        d  0.5438868
5    5  a        d -0.6883436
6    6  b        d  0.7651908

第一个变体 - 用于variable获得不同颜色的线条,然后id用于刻面。

ggplot(df.long,aes(time,value,color=variable))+geom_line()+
         facet_grid(id~.)

在此处输入图像描述

第二个变体 - 如果所有行都应该在不同的方面,那么在分面中同时使用variableid

ggplot(df.long,aes(time,value))+geom_line()+
      facet_grid(variable~id)

在此处输入图像描述

更新 - 新数据的解决方案

如果数据已经是长格式(无需融化数据),则不仅仅是使用facet_grid(id~.)group=id在单独的方面使用行。

ggplot(df,aes(time,d,group=id))+geom_line()+facet_grid(id~.) 

在此处输入图像描述

于 2013-05-10T13:12:25.433 回答