2016-04-21 17 views
0

Ich versuche einen automatisierten Bericht zu erstellen, der drei Diagramme direkt untereinander ohne Randabstand hat.Überlappende Tabellen von grid.arrange in gridExtra

Ich habe mein Problem mit der folgenden Rmd Skript

--- 
output: pdf_document 
--- 

```{r setup, include=FALSE} 
library(gridExtra) 
``` 

```{r, echo=FALSE} 
car_tbl <- tableGrob(mtcars[1:10,]) 
grid.arrange(car_tbl, car_tbl, car_tbl) 
``` 

Sie verspotteten können sehen, wie die Tabellen einander überlappen. Es scheint, als gäbe es tatsächlich ein paar Probleme, die mein Problem umfassen.

  1. Wie verwende ich die Optionen von tableGrob und grid.arrange, um zu verhindern, dass sich die Tabellen überschneiden.
  2. Wie stelle ich sicher, dass nichts abgeschnitten wird? Mit anderen Worten: Wie setze ich die Grafik so, dass sie die ganze Seite aufnimmt, wenn ich sie auch brauche?
  3. Wie kann ich den Text des Plots reaktiv verkleinern, um auf eine Seite zu passen?
  4. Wie kann ich die Größe der Seite auf die von mir gewünschte Größe einstellen? Gibt es Optionen, um das Dokument auf eine PDF-Seite beliebiger Größe zu drucken? Vielleicht Postergröße, wenn ich es brauche?
+0

Haben Sie diese FAQ überprüft? https://github.com/baptiste/gridextra/wiki#problems-with-gridtable – baptiste

+0

BTW, wenn Sie 3 Diagramme direkt untereinander sagen, meinen Sie die 3 Tabellen? Wäre es einfacher, die Tabellen in 1 zu kombinieren? Haben sie die gleiche Anzahl von Spalten? Welche Größe haben sie (dh passen sie in eine Standard-A4-Seite mit einer lesbaren Schriftgröße?) – baptiste

+0

ja. Ich habe das Wiki gesehen und es war bisher hilfreich, aber es gibt so viele Einstellungen von der Papiergröße bis zur Schriftgröße, dass ich ein wenig überfordert bin von all den anderen Optionen außerhalb von gridExtra. Liebe das Paket übrigens. – cylondude

Antwort

1

Es gibt verschiedene Blickwinkel auf Ihre Frage. Hier ist ein Arbeitsbeispiel mit drei Tabellen, die in einem Stück auf einem PDF der Größe A2 passen.

--- 
output: pdf_document 
geometry: paper=a2paper 
--- 

```{r setup, include=FALSE} 
library(gridExtra) 
``` 

```{r, echo=FALSE, fig.height=10} 
car_tbl <- tableGrob(mtcars[1:10,]) 
grid.arrange(car_tbl, car_tbl, car_tbl) 
``` 

Ihre Fragen gezielt zu adressieren,

1. How do I use the options of tableGrob and grid.arrange to keep the tables from overlapping. 

ihre Überlappung mehr hatte mit dem Standard zu tun fig.height von knitr gesetzt.

2. How do I make sure nothing is cut off? In other words, how do I set the graphic to take the whole page if I need it too? 

Stellen Sie sicher, dass die Höhe und die Seitenzahl groß genug für den Tisch sind.

3. How can I re-actively shrink the text of the plot to fit on one page? 

Es ist nicht trivial, aber ich denke, es könnte getan werden. Ich bezweifle jedoch, dass es eine gute Idee ist (aus typografischen Gründen): Normalerweise sollte die Schriftgröße eingestellt werden, und wenn die Tabelle nicht passt, sollte sie in mehrere Seiten aufgeteilt werden (es gibt ein Beispiel in einem Link, den ich zur Verfügung gestellt habe).

3. How can I set the size of the page to whatever size I want? Are there options set the knitr document to print to a pdf page of any size I want? Perhaps poster size if I need it to? 

Es ist eine Latex-Frage, die im Zusammenhang mit Rmd Dokumenten bedeutet, dass Sie diese Layout-Optionen passieren könnten über rmarkdown und pandoc, in der Regel als Optionen für das Geometrie-Paket auf Latex.

+0

Danke!Ich war nervös, weiter mit Figurgrößen zu spielen, weil ich dachte, das könnte der wahre Grund sein. – cylondude