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'从相应的'lag'开始,而不是从0开始。
我认为你可以在geom_segment的aes()中执行xstart = lag,但这对我不起作用。
任何帮助?
答案 0 :(得分: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
的{{1}}。我只是以ggplot
作为终点。
如果您真的希望条形码从lag
开始,那么您应该从lag
移除x = -stim
,只需在ggplot
中传递开始和结束值。 (事实上,这可能是一个好主意。)