2012-02-29 61 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應該引導你在正確的方向。