2013-03-07 148 views
4

我想用ggplot2绘制一个阴谋,在X轴上我可以找到一些变量组标签的方法。这里是我的代码最低版本:轴标签的分组ggplot2

Bzero <-100*matrix(runif(100),ncol=10,nrow=10) 

B <-99 
LNtype <-c(1,1,1,1,2,2,2,3,3,3) 
LNnames <-c('grp1','grp2','grp3') 

tB <-t(Bzero)/(B+1) 
dfB <-data.frame(tB) 
dfB$grp <-LNtype 
dfB$vid <-1:nrow(tB) 


mB0 <- melt(dfB,id.vars=c('grp','vid')) 
mB0 <- mB0[order(mB0$grp,mB0$vid),] 

gg0 <- ggplot(mB0,aes(x=vid,y=variable)) 
gg0 <- gg0 + geom_tile(aes(fill = value),colour = "white") 
gg0 <- gg0 + scale_fill_gradient(low = "green", high = "red",na.value='white',limits=c(0,1),name='p0i') 
gg0 <- gg0 + xlab('Equation')+ylab('Covariate') 

下面是导致情节:

Resulting plot:

这里是想什么,我有: enter image description here

我一直与规模修补,打破和标签无济于事。即使是大量的谷歌搜索也没有显示出这种轴的任何情节。有什么办法得到我想要的?

回答

5

您可以使用scale_x_continuous()替换组中的数字,并在所需的位置设置中断。使用geom_segment(),您可以将这些黑线添加到组数据。

gg0+ 
geom_segment(aes(x=0.5,y=0.5,xend=10.5,yend=0.5))+ 
geom_segment(aes(x=c(0.5,4.5,7.5,10.5), 
        xend=c(0.5,4.5,7.5,10.5),y=rep(0.5,4),yend=rep(1,4)))+ 
    scale_x_continuous("",breaks=c(2.5,6,9),labels=c("Group1","Group2","Group3")) 

enter image description here

+0

@Laurent你确定吗?这看起来完全像你画的图片。 – joran 2013-03-07 17:23:39

+0

@joran我没有看到回复的更新。太棒了! – 2013-03-07 17:28:26

+0

@Didzis这正是我想要的,不知道geom_segment。非常感谢! – 2013-03-07 17:30:25