2012-09-17 49 views
2
ggplot(int_times,aes(x=-stim ,y=num,colour=gene)) + 
     scale_y_continuous(breaks=int_times$num,labels=int_times$gene) + 
     geom_segment(aes(xend=stim,ystart=num,yend=num),size=5) + 
     xlab('IW (min)') + 
     ylab('Genes') + 
     opts(title='multi') 

int_times在x軸上的不同初始值:geom_segment()

gene lag stim num 
Pcsk1 46.53 173.53 1 
serpin2 83.00 208.02 2 
    Bdnf 33.00 277.02 3 
Fosl2 49.00 266.03 4 
    Pax1 33.59 243.56 5 
    Acan 188.49 70.30 6 
Pthlh 50.00 271.45 7 
    Crh 35.00 359.06 8 

這就是我現在所擁有的 enter image description here

什麼,我想,雖然是y值「STIM '開始在他們相應的'滯後',而不是全部從0開始。

我以爲你可以在geom_segment的aes()中做一個xstart = lag,但那不是workin g對我來說。

有幫助嗎?

+0

'xend的長度=(STIM)'是類的廢話。你告訴ggplot以1個元素向量的長度結束每個小節,因此所有小節都擴展爲1(不是零,正如你問題所暗示的那樣)。 – joran

+0

雅,我修正了,但我不知道如何在這裏合併一個起始值 – Doug

回答

3

試試這個(我命名爲不同的數據的東西時,我進口的話):

ggplot(dat,aes(x=-stim ,y=num,colour=gene)) + 
     scale_y_continuous(breaks=dat$num,labels=dat$gene) + 
     geom_segment(aes(xend=lag,ystart=num,yend=num),size=5) + 
     xlab('IW (min)') + 
     ylab('Genes') + 
     opts(title='multi') 

enter image description here

但它仍然是從你的問題很不清楚你想要什麼。你可以參考y的開始和結束值,但是你的意思是x?條的起始值從傳遞給x-stim繼承ggplot。我只是通過lag作爲終點。

如果你真的想要的酒吧在lag開始,那麼你應該從ggplot刪除x = -stim和簡單地傳遞在geom_segment開始和結束值。 (事實上​​,這可能是一個很好的總體思路。)

+0

這是好的,我改變的唯一的東西是xend = -lag。當我這樣做,雖然0不包括在xaxis中。會像scale_x_continuous(限制(0,長度(....?))嗎? – Doug

+0

@Doug使用'xlim()'可能會更簡單。 – joran

相關問題