我在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,所以我希望它们自动添加。 我希望它是可能的,所以我不必在另一个程序中手动完成。
答案 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))
结果如下: