您可以在现有轴下添加标签吗?

时间:2015-04-30 05:45:54

标签: r ggplot2 label axes

我在r中使用ggplot2并制作了我的情节。但是我想在我现有的x轴下添加一些.csv文件中的间隔。

这是一个示例,显示我想在x轴下绘制的内容: http://www.nature.com/nprot/journal/v8/n5/images/nprot.2013.053-F3.jpg 图片" a"在x轴下具有间隔。 我有一个.csv文件,其间隔格式为:

Fraction no.; Interval
"1"; [0:2]
"2"; [2:4]

等等,大约80,所以我希望它们自动添加。 我希望它是可能的,所以我不必在另一个程序中手动完成。

1 个答案:

答案 0 :(得分:4)

我们可以使用geom_segment中的ggplot来绘制新图中的间隔,并使用来自grid.arrange()库的gridExtra重新组合您的情节。

例如,使用虹膜数据: 我创建了一个直方图:

g <- ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width))+geom_histogram(stat="identity")

然后使用这样的间隔数据:

inter <- data.frame(v1=seq(0,max(iris$Sepal.Length),1.5),v2=seq(1,max(iris$Sepal.Length)+2,1.5))

head(inter)
   v1  v2
1 0.0 1.0
2 1.5 2.5
3 3.0 4.0
4 4.5 5.5
5 6.0 7.0
6 7.5 8.5

我创建了一个没有背景和轴的新情节:

top <- ggplot(inter,aes(v1,0))+geom_segment(aes(x=v1,y=0,xend=v2,yend=0))+geom_segment(aes(x=v1,xend=v1,y=0,yend=0.5))+geom_segment(aes(x=v2,xend=v2,y=0,yend=0.5))+theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),panel.background = element_blank(),axis.ticks=element_blank(),axis.text=element_blank())+xlab("")+ylab("")

并将其添加到上一个剧情

grid.arrange(g,top,ncol=1,nrow=2,heights=c(6,1))

结果如下:

enter image description here