2013-11-07 3 views
1

Я хотел бы построить две гистограммы и добавить таблицу в файл pdf. С помощью функции компоновки мне удалось построить гистограммы (построили их с помощью функции hist), где я хочу, чтобы они были, но когда я использовал функцию grid.table из пакета gridExtra, чтобы добавить таблицу, таблица будет выложена на гистограммах, и я не в состоянии правильно позиционировать их. Я пробовал функцию 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() 

Любая помощь будет оценена по достоинству.

Ram

+2

Вы не можете смешивать базовые и сетки графики. Если вы хотите использовать пакет gridExtra, вы должны сделать все в grid/ggplot2. Существует много ответов на SO о гистограммах, использующих ggplot2 и упорядочивающих грызуны. – Roland

+0

Вам нужно добавить примеры данных и пример кода для людей, с которыми нужно работать; см. [здесь] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). – gung

ответ

2

Вот пример того, как объединить два 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

+0

Большое спасибо Backlin. Именно то, что я хотел. – user2960593

Смежные вопросы