R 定位图和表

R 定位图和表,r,plot,gridextra,R,Plot,Gridextra,我想画两个直方图,并添加一个表格到pdf文件。使用layout函数,我成功地将直方图绘制到我想要的位置(使用hist函数绘制直方图),但当我使用gridExtra包中的grid.table函数添加表格时,表格被放置在直方图上,我无法正确定位它们。我尝试过addtable2plot函数,但我觉得它在视觉上没有吸引力 我该怎么解决这个问题呢 我希望我的pdf看起来像这样 histogram1 histogram2 t a b l e 本质上,一行有两列,另一行只有一列。这

我想画两个直方图,并添加一个表格到pdf文件。使用layout函数,我成功地将直方图绘制到我想要的位置(使用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()
require(gridExtra)
布局(矩阵(c(1,2,3,3),2,2,byrow=T,高度=c(1,1))
计数表=表(切割(制表符$Longest\u OHR,断裂=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=最大值(计数表)+1000
hist(tab$Longest_OHR,xlab=“OHR Longest”,ylim=c(0,ysize))
计数表=表(切割(表$Sum\u 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=最大值(计数表)+1000
hist(tab$Sum,of OHR.s,xlab=“OHR Sum”,ylim=c(0,ysize))

tmp这是一个如何在同一个图中组合两个
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)
发送到
视口的坐标是面板的中心。也可以查看其边界的确切位置,您可以调用
grid.rect()


不能混合使用基本图形和网格图形。如果要使用gridExtra包,应在grid/ggplot2中执行所有操作。关于使用ggplot2和排列GROB的直方图,有很多答案;瞧,非常感谢你,巴克林。正是我想要的。