我想绘制两个直方图并将表格添加到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()
任何帮助将不胜感激。
拉姆
答案 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()
。