2017-08-27 1 views
1

J'essaie de créer un en-tête pour mes pages de graphique avec le texte en gras. Le code que j'utilise est ci-dessous, j'ai défini fontface = bold mais cela ne semble pas fonctionner. Y a-t-il un autre endroit où j'ai besoin de le configurer?TextGrob R - police = gras mais pas gras

t = textGrob(expression(underline("My Sample Header")),gp=gpar(fontfamily="serif",fontsize=16, fontface="bold",lineheight=1),vjust=.3,hjust=2.15) 
+2

Vous avez besoin de 'expression (gras (souligné (" My Sample Header ")))' –

Répondre

1

Puisque personne n'a répondu à cela, vous pouvez le faire de deux façons:

Méthode 1: Utiliser des expressions mais ne expression(bold(underline(...))) comme:

t = textGrob(expression(bold(underline("My Sample Header"))),gp=gpar(fontfamily="serif",fontsize=16, fontface="bold",lineheight=1),vjust=.3,hjust=1) 
grid.draw(t) 

Méthode 2: Ecrire une fonction wrapper qui combine le textGrob avec une ligne (probablement une meilleure option):

underlineText <- function(text, gpar, vjust, hjust){ 
    txt <- textGrob(text, gp=gpar, vjust = vjust, hjust = hjust) 
    undLine <- segmentsGrob(x0 = txt$x - grobWidth(txt), y0 = txt$y - unit(0.55, "grobheight", txt), x1 = txt$x, y1 = txt$y - unit(0.55, "grobheight", txt)) 
    gt <- grobTree(txt, undLine) 
} 

grid.draw(underlineText("My Sample Header", gpar(fontfamily="serif",fontsize=16, fontface="bold",lineheight=1), vjust = 0.3, hjust = 1))