Ich habe eine ziemlich breite Tabelle (4/3 Seitenbreite), die ich versuche, mit grid.table oder grid.arrange (via tableGrob) in eine PDF-Datei zu drucken. Die Tabelle geht über Seitengrenzen hinaus und wird abgeschnitten. Gibt es eine Möglichkeit, grid.table/grid.arrange zu erzwingen, um die Tabelle auf den Druckbereich zu skalieren?Wie passe ich eine sehr breite grid.table oder tableGrob an, um auf eine pdf-Seite zu passen?
Antwort
Ich habe dies mit den Schriftgrößen getan. Nicht die beste Lösung (erfordert manuellen Eingriff), aber vielleicht kann jemand etwas eleganter beitragen.
termTable = tableGrob(terms, h.even.alpha=1, h.odd.alpha=1, v.even.alpha=0.5, v.odd.alpha=1, core.just='left', rows=c(),
gpar.coretext =gpar(fontsize=8),
gpar.coltext=gpar(fontsize=10, fontface='bold'),
gpar.rowtext=gpar(fontsize=10, fontface='bold')
)
Mit der neuesten Version von gridExtra, die korrekte Formatierung rimorob Antwort zu aktualisieren:
termTable = tableGrob (Begriffe theme = ttheme_default (gpar.coretext = gpar (Schriftgröße = 8), gpar .coltext = gpar (Schriftgröße = 10, fontface = 'fett'), gpar.rowtext = gpar (Schriftgröße = 10, fontface = 'fett')))
Ich bezweifle es, haben Sie diesen Code ausgeführt? – baptiste
Es gibt einen Weg, aber es ist unklar, was wann passieren soll Der Text ist zu breit, um in einige Zellen zu passen.
Eine Möglichkeit ist es, die Breiten manuell einzustellen,
library(grid)
library(gridExtra)
g1 <- g2 <- tableGrob(head(iris, 10), rows=NULL)
g2$widths <- unit(rep(1/ncol(g2), ncol(g2)), "npc")
grid.newpage()
gt = arrangeGrob(textGrob("page 1"), textGrob("page 2"),
rectGrob(gp=gpar(fill="grey98")),
rectGrob(gp=gpar(fill="grey98")),
nullGrob(),
layout_matrix=rbind(c(1,5,2), c(3,5,4)),
widths = unit(c(1,5,1),c("null", "cm", "null")),
heights = unit(c(1, 1),c("line", "null")),
vp = viewport(width=0.9, height=0.9))
tc = list(g1, g2)
gt <- gtable::gtable_add_grob(gt, tc, l=c(1,3), t=2,
name="newgrobs")
grid.draw(gt)
aber natürlich mit einer festen Schriftgröße bedeutet dies, dass einiger Text geschnitten werden könnte.
Wahrscheinlich ist eine bessere Option Zeilenumbrüche einzuführen und/oder (leicht), um die Schriftgröße reduzieren.
g3 <- tableGrob(head(iris, 10), theme = ttheme_default(7),
rows=NULL, cols=gsub("\\.", "\\\n",names(iris)))
g3$widths <- unit(rep(1/ncol(g2), ncol(g2)), "npc")
grid.newpage()
gt = arrangeGrob(textGrob("page 1"), textGrob("page 2"),
rectGrob(gp=gpar(fill="grey98")),
rectGrob(gp=gpar(fill="grey98")),
nullGrob(),
layout_matrix=rbind(c(1,5,2), c(3,5,4)),
widths = unit(c(1,1,1),c("null", "line", "null")),
heights = unit(c(1, 1),c("line", "null")),
vp = viewport(width=0.9, height=0.9))
tc = list(g2, g3)
gt <- gtable::gtable_add_grob(gt, tc, l=c(1,3), t=2,
name="newgrobs")
grid.draw(gt)
- 1. Wie passe ich eine ganze Zeichenfolge an eine Regex an?
- 2. Wie passe ich eine Funktion mit PyBrain-Netzwerken an?
- 3. Wie passe ich bestimmte Spalten für einen TableGrob in R an?
- 4. Wie kann ich einen Titel zu einem TableGrob Plot hinzufügen?
- 5. Wie passe ich eine Kurve an eine Reihe von segmentierten Linien in Matlab an?
- 6. Ausrichtung von Text bei Verwendung von tableGrob oder grid.table in R
- 7. Wie passe ich eine exponentielle Kurve an gedämpfte harmonische Schwingungsdaten in MATLAB an?
- 8. JS: Wie passe ich eine Parametereingabe zu einer Funktion an ein globales Objekt nach Namen an?
- 9. Wie passe ich eine Ganzzahl mit Leerzeichen?
- 10. So passen Sie eine Box mit CSS oder Javascript an
- 11. Die Breite eines Tisches strecken, um Webbrowser zu passen
- 12. Größe der Seite anpassen, um auf eine Druckseite zu passen
- 13. passen Artikel zu Container Breite
- 14. Wie passe ich den PIXI-Renderer an die Breite und Höhe des Browsers an?
- 15. Regex, um alles auf eine leere Zeile zu passen
- 16. Wie passe ich Akzentzeichen in preg_match() an?
- 17. Wie bekomme ich eine Webseite um auf den iPhone Bildschirm in Xcode zu passen?
- 18. Inhalt auf die Breite des div passen
- 19. Hinzufügen von Text zu einem grid.table Plot
- 20. Wie füge ich Text auf eine bestimmte Breite zurück?
- 21. So passen Sie eine SwitchableFieldDefinition an
- 22. Wie passe ich eine Zahl in eckigen Klammern mit Regex
- 23. Wie passe ich ähnliche Koordinaten mit Python an?
- 24. Wie passe ich DatagramSocket.MessageReceived zur Verwendung mit async/await an?
- 25. Größe der Website-Breite anpassen, um in Breite des iPad-Bildschirms zu passen
- 26. Wie passe ich Typen an, die keine bestimmte Typklasseninstanz haben?
- 27. Wie lade ich eine sehr große Datei auf S3 hoch?
- 28. Passen Sie Karte an, um Welt immer zu zeigen
- 29. Wie passe ich ein Bild an, ohne seine Auflösung zu verformen?
- 30. Wie passe ich null oder mehr Klammern in Python Regex
Nö, von Entwurf. Wenn die Tabelle auf die Seite skaliert wurde, müsste der Text so skaliert werden, dass er in die Zellen passt, anstatt eine feste Schriftgröße zu haben, und ich entschied mich, dies nicht zu tun. – baptiste
Das ist eine Erklärung, aber kein Grund. Warum haben Sie sich entschieden, das nicht zu implementieren? Tolles Werkzeug übrigens! – rimorob