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:

  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

これは私が今持っているものです ここに画像の説明を入力してください

ただし、y値'stim'は、すべて0から開始するのではなく、対応する'lag'から開始する必要があります。

geom_segmentのaes()でxstart = lagを実行できると思いましたが、それはうまくいきません。

何か助けはありますか?

4

1 に答える 1

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')

ここに画像の説明を入力してください

しかし、あなたの質問から、あなたが何を意図しているのかはまだ非常にはっきりしていません。あなたは開始値と終了y値を参照しますが、確かにあなたは意味しxますか?バーの開始値は、に-stim渡されたから継承さxれていggplotます。私は単にlag終点として合格しました。

本当にバーをで開始したい場合は、からlag削除して、開始値と終了値をで渡す必要があります。(実際、それはおそらく一般的には良い考えです。)x = -stimggplotgeom_segment

于 2012-09-17T16:50:18.673 に答える