2015-07-22 16 views
11

Sto usando il codice seguente per generare un grafico semplice, con alcune annotazioni:Utilizzando diversi tipi di carattere in annotate (ggplot2)

require(ggplot2); data(mtcars) 
ggplot(mtcars, aes(x = wt, y = mpg)) + 
    geom_point() + 
    annotate("text", x = 4, y = 25, label = "This should be bold\nand this not", 
      colour = "red") + 
    geom_vline(xintercept = 3.2, colour = "red") 

Simple plot

In quella tabella vorrei applicare grassetto carattere alla prima parte della frase nella nota di testo:

Questo dovrebbe essere in grassetto

ma desidero che la restante parte del testo rimanga inalterata rispetto al carattere e allo stile del font.

+0

probabilmente è meglio dividerlo in due chiamate e aggiungere fontface = "bold" a uno – jeremycg

risposta

9

Come sull'utilizzo plotmath sintassi con parse = TRUE:

ggplot(mtcars, aes(x = wt, y = mpg)) + 
    geom_point() + 
    annotate("text", x = 4, y = 25, 
      label = 'atop(bold("This should be bold"),"this should not")', 
      colour = "red", parse = TRUE) + 
    geom_vline(xintercept = 3.2, colour = "red") 

enter image description here

+0

Come fare una situazione in cui ho tre righe di testo, la prima con una data dovrebbe essere in grassetto e due righe sotto di essa dovrebbero essere stampate con un font standard. – Konrad

+1

@Konrad Mentre potrebbe dipendere da tutte quelle informazioni che avrei voluto aggiungere alla trama, probabilmente avrei trasformato ciascuna riga in una data.frame o qualcosa del genere e userei 'tableGrob' e' annotation_custom' per posizionarla sul grafica dove volevo. – aosmith

+0

sembra un suggerimento valido, grazie – Konrad

10

Se non hanno un problema con suddividerlo in due annotazioni, si può solo fare:

annotate("text", x = 4, y = 25, label = "This should be bold", 
     colour = "red", fontface =2)+ 
annotate("text", x = 4, y = 24, label = "and this not", 
     colour = "red") 
Problemi correlati