2012-02-29 76 views
0

,我有以下数据修复x轴排序在GGPLOT2

dftmp 
    z.transient kprimes  groupname 
1 -1.244061  10 k=9.8,p=56.4 
2 -0.995249  20 k=9.8,p=56.4 
3 -0.746437  30 k=9.8,p=56.4 
4 -0.497625  40 k=9.8,p=56.4 
5 -0.248812  50 k=9.8,p=56.4 
6   0  60 k=9.8,p=56.4 
7  0.248812  70 k=9.8,p=56.4 
8  0.497625  80 k=9.8,p=56.4 
9  0.746437  90 k=9.8,p=56.4 
10 0.995249  100 k=9.8,p=56.4 
11 1.244061  110 k=9.8,p=56.4 
12 -1.244061  100 k=103.2,p=155.5 
13 -0.995249  200 k=103.2,p=155.5 
14 -0.746437  300 k=103.2,p=155.5 
15 -0.497625  400 k=103.2,p=155.5 
16 -0.248812  500 k=103.2,p=155.5 
17   0  600 k=103.2,p=155.5 
18 0.248812  700 k=103.2,p=155.5 
19 0.497625  800 k=103.2,p=155.5 
20 0.746437  900 k=103.2,p=155.5 
21 0.995249 1000 k=103.2,p=155.5 
22 1.244061 1100 k=103.2,p=155.5 
23 -1.244061 1000 k=786.9,p=849 
24 -0.995249 2000 k=786.9,p=849 
25 -0.746437 3000 k=786.9,p=849 
26 -0.497625 4000 k=786.9,p=849 
27 -0.248812 5000 k=786.9,p=849 
28   0 6000 k=786.9,p=849 
29 0.248812 7000 k=786.9,p=849 
30 0.497625 8000 k=786.9,p=849 
31 0.746437 9000 k=786.9,p=849 
32 0.995249 10000 k=786.9,p=849 
33 1.244061 11000 k=786.9,p=849 

我想与GGPLOT2

p <- ggplot(dftmp, aes(x=z.transient, y=kprimes, group=groupname)) 
p <- p + geom_line(aes(colour=groupname), size=2) 
p <- p + scale_y_log10() 

绘制它可是,GGPLOT2似乎订购因素,因为从0开始,然后alternatiing消极和积极的,这样我得到了每个图的波浪线:

wavy plot

如何重新排列x因子。另外,如何指定y轴的轴限制?

+0

你真的想要x轴是绝对的吗?既然它是数字,为什么不把它作为一个连续变量来绘制呢?制作一个'as.numeric(as.character(z.transient))'的列,并且将你的x美学图映射到你的东西上。 – 2012-02-29 22:06:25

+0

你是对的,我不希望它成为一个因素。我一直使用你的代码来破坏事物,但它似乎是这样的黑客攻击。很高兴知道我不是唯一一个。 – stevejb 2012-03-01 02:39:14

回答

2

那是因为你的z.transient是你说的一个因素。在我看来,它是一个连续变量不是?如果是这样,请将其从一个因子转换为该值(请参阅?factor)。

dftmp$z.transient <- as.numeric(levels(dftmp$z.transient))[dftmp$z.transient] 

此外,由于你的数据是现在,如果我直接用它的情节看起来很好,因为z.transient是数字。试试吧,使用方法:

dftmp <- read.table('clipboard') 

然后按照步骤绘制...

至于轴限制,this post应该引导你在正确的方向。