2012-07-31 136 views
3

我有以下数据集:奇怪线与GGPLOT2

> str(dat) 
'data.frame': 5000 obs. of 3 variables: 
$ y: num 0.864 0.869 0.871 0.879 0.874 0.871 0.871 0.873 0.864 0.869 ... 
$ A: Factor w/ 5 levels "0.2","0.5","0.8",..: 1 1 1 1 1 1 1 1 1 1 ... 
$ x: num 1 2 3 4 5 6 7 8 9 10 ... 
> head(dat) 
     y A x 
1 0.864 0.2 1 
2 0.869 0.2 2 
3 0.871 0.2 3 
4 0.879 0.2 4 
5 0.874 0.2 5 
6 0.871 0.2 6 

的“X”列是向量c(1:5000)

> all(dat$x==1:5000) 
[1] TRUE 

因此绘图时我不理解一些线的存在如下图所示:

ggplot() + geom_line(aes(x=x, y=y, color=A), data=dat) 

我说的这几行是用三个黑色的arro WS在图中: ggplot

编辑:下面是一个类似的例子具有可再生的模拟数据集:

set.seed(666) 
mu <- rep(c(200, 400, 600, 300, 500), each=1000) 
A <- factor(rep(c(1,2,3,1,2), each=1000)) 
y <- rnorm(length(mu), mu, 100) 
dat <- data.frame(x=1:length(mu), y=y, A=A) 
ggplot() + geom_line(aes(x=x, y=y, color=A), data=dat) 
+0

你能子集数据并产生重复的例子?某些'y'或'x'值可能不是您所期望的。 – 2012-07-31 09:17:10

+0

如何附加我的数据?我没有看到这些线的原因是如何与y值相关的,并且我完全知道x = 1:5000鉴于所有结果(dat $ x == 1:5000) – 2012-07-31 09:24:07

+0

Ok - I已经发现如何模拟一个类似的例子,我要编辑我的文章。 – 2012-07-31 09:27:29

回答

5

您需要在数据帧的另一个变量来表示不同的块(即搭配同色系的区域)和group论点geom_line

dat <- data.frame(x=1:length(mu), y=y, A=A, B=gl(5, 1000)) 
ggplot() + geom_line(aes(x=x, y=y, color=A, group=B), data=dat) 

ggplot output