flextable 0.5.4 est maintenant sur le CRAN. Cette version contient une nouvelle option de sortie qui répond à la demande de quelques utilisateurs : la capacité à sauver les flextables en tant qu’images grâce à la fonction save_as_image.
La solution existait déjà mais elle était un peu perdue dans une question de stackoverflow au lieu d’être implémentée proprement dans flextable.
Cette fonctionnalité a ouvert d’autres possibilités ; vous pouvez maintenant utiliser la méthode plot, ainsi que as_raster, et faire du raster ce que vous voulez (par exemple le combiner avec un objet ggplot).
Demo
D’abord, on créer un flextable simple.
library(flextable)
ft <- flextable( head( mtcars ) )
ft <- autofit(ft)
ft
mpg | cyl | disp | hp | drat | wt | qsec | vs | am | gear | carb |
21.0 | 6 | 160 | 110 | 3.90 | 2.620 | 16.46 | 0 | 1 | 4 | 4 |
21.0 | 6 | 160 | 110 | 3.90 | 2.875 | 17.02 | 0 | 1 | 4 | 4 |
22.8 | 4 | 108 | 93 | 3.85 | 2.320 | 18.61 | 1 | 1 | 4 | 1 |
21.4 | 6 | 258 | 110 | 3.08 | 3.215 | 19.44 | 1 | 0 | 3 | 1 |
18.7 | 8 | 360 | 175 | 3.15 | 3.440 | 17.02 | 0 | 0 | 3 | 2 |
18.1 | 6 | 225 | 105 | 2.76 | 3.460 | 20.22 | 1 | 0 | 3 | 1 |
Si on souhaite le sauver en png, on peut utiliser le code suivant :
save_as_image(ft, path = "name.png")
On peut aussi utiliser la fonction plot
:
plot(ft)
Ou encore le combiner avec un graphique ggplot :
library(ggplot2)
library(grid)
library(cowplot)
anyplot <- qplot(speed, dist, data = cars, geom = "point")
ft_raster <- as_raster(ft)
gflextable <- ggplot() +
theme_void() +
annotation_custom(rasterGrob(ft_raster),
xmin = -Inf, xmax = Inf, ymin = -Inf, ymax = Inf)
plot_grid(anyplot, gflextable, nrow = 2, ncol = 1, rel_heights = c(4, 1))
Note à propos de la largeur et hauteur
Il peut être intéressant de connaître les dimensions exactes d’un flextable. Pour
cela, on utilise la fonction flextable_dim()
qui va renvoyer les dimensions
et le ratio d’aspect.
dims <- flextable_dim(ft)
dims
#> $widths
#> [1] 6.186252
#>
#> $heights
#> [1] 2.800021
#>
#> $aspect_ratio
#> [1] 0.4526199
Il faudra par exemple utiliser ces informations pour renseigner les options knitr du chunk qui produit le graphique avec plot
: fig.asp
, fig.width
et fig.height
.
Suivez nous: - Sites recommandés: R-bloggers R weekly Twitter #rstats Jobs for R-users