定位情节和表格

时间:2013-11-07 14:32:26

标签: r plot gridextra

我想绘制两个直方图并将表格添加到pdf文件中。使用布局功能,我设法绘制直方图(使用hist函数绘制它们),我想要它们,但是当我使用gridExtra包中的grid.table函数添加表时,表格被放置在直方图上,我是无法正确定位它们。我试过addtable2plot函数,但我发现它没有视觉吸引力。

关于如何解决这个问题的任何想法?

我希望我的pdf看起来像这样

histogram1 histogram2
t    a    b   l     e 

基本上,一行有两列,另一行只有一列。这就是我所做的。

require(gridExtra)
layout(matrix(c(1,2,3,3),2,2,byrow=T),heights=c(1,1))
count_table=table(cut(tab$Longest_OHR,breaks=c(0,0.05,0.10,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.95,1.00)))
ysize=max(count_table)+1000
hist(tab$Longest_OHR,xlab="OHR longest",ylim=c(0,ysize))

count_table=table(cut(tab$Sum_of_OHR.s,breaks=c(0,0.05,0.10,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.95,1.00)))
ysize=max(count_table)+1000
hist(tab$Sum_of_OHR.s,xlab="OHR Sum",ylim=c(0,ysize))

tmp <- table(cut(tab$Length_of_Gene.Protein, breaks = c(0,100,200,500,1000,2000,5000,10000,1000000000)), cut(tab$Sum_of_OHR.s, breaks = (0:10)/10))
grid.table(tmp)
dev.off()

任何帮助将不胜感激。

拉​​姆

1 个答案:

答案 0 :(得分:3)

以下是如何在同一图中合并两个base图和一个grid.table的示例。

library(gridExtra)

layout(matrix(c(1,0,2,0), 2))
hist(iris$Sepal.Length, col="lightblue")
hist(iris$Sepal.Width, col="lightblue")

pushViewport(viewport(y=.25,height=.5))
grid.table(head(iris), h.even.alpha=1, h.odd.alpha=1,
           v.even.alpha=0.5, v.odd.alpha=1)

发送到viewport的坐标是面板的中心。要确切地看到其边界的位置,您可以调用grid.rect()

enter image description here