2012-10-04 3 views
17

Ho creato un grafico reticolare con tre pannelli. Posso controllare la dimensione del carattere per l'asse e le etichette di spunta, ma non sono stato in grado di capire come aumentare la dimensione del carattere delle etichette della striscia. Ecco un esempio concreto:Come impostare la dimensione del carattere dell'etichetta della striscia in grafica reticolare in R

# See below for the fake data to run this code 
library(lattice) 
barchart(choice ~ yes+no+not.app|group, data=data, 
     stack=TRUE, col=c("green","red","blue"), 
     xlim=c(0,100), layout=c(3,1), 
     scales=list(cex=c(1.4,1.4), alternating=3), 
     xlab=list(label="Percent of Respondents", fontsize=20), 
     main="") 

Ecco il grafico che questo codice produce. Nota come tutti i font sono belli e grandi tranne le etichette di striscia ("Gruppo 1", "Gruppo 2", "Gruppo 3"). Ho pescato attorno a R-help e Stack Overflow, ma non sono riuscito a lavorare su questo. Qualcuno conosce l'incantesimo magico?

enter image description here

data = structure(list(choice = c("Choice 1", "Choice 1", "Choice 1", 
"Choice 2", "Choice 2", "Choice 2", "Choice 3", "Choice 3", "Choice 3", 
"Choice 4", "Choice 4", "Choice 4"), group = c("Group 1", "Group 2", 
"Group 3", "Group 1", "Group 2", "Group 3", "Group 1", "Group 2", 
"Group 3", "Group 1", "Group 2", "Group 3"), yes = c(23.53, 20.47, 
22.94, 16.51, 16.54, 16.51, 9.68, 13.39, 10.4, 24.48, 29.92, 
25.54), no = c(41.37, 37.01, 40.52, 48.39, 40.94, 46.94, 55.22, 
44.09, 53.06, 40.42, 27.56, 37.92), not.app = c(35.1, 42.52, 
36.54, 35.1, 42.52, 36.54, 35.1, 42.52, 36.54, 35.1, 42.52, 36.54 
)), .Names = c("choice", "group", "yes", "no", "not.app"), row.names = c(NA, 
12L), class = "data.frame") 
+0

Si dovrebbe probabilmente notare che in reticolo, "pannello" si riferisce a ciò che è all'interno dell'area (i) del tracciato, mentre "strisce" e "etichette" sono generalmente al di fuori dell'area (o delle aree) del tracciato. –

+0

Ho appena visto il tuo commento e ho aggiornato il titolo e il testo. – eipi10

risposta

24

Prova questa (buon lavoro sulla fornitura di un esempio):

barchart(choice ~ yes+no+not.app|group, data=data, 
    par.strip.text=list(cex=2), 
    stack=TRUE, col=c("green","red","blue"), 
    xlim=c(0,100), layout=c(3,1), 
    scales=list(cex=c(1.4,1.4), alternating=3), 
    xlab=list(label="Percent of Respondents", fontsize=20), 
    main="") 

Per vedere di più su come gestire il tipo di caratteristiche striscia: ?strip.default Ci sono altre leve di gettare strip.custom. Vedi anche il pacchetto reticolareExtra che ha la capacità di mettere strisce sui lati con useOuterStrips.

+2

Ah, la parola magica è 'strip'. Continuavo a fare scherzi con le varianti di 'panel.this',' panel.that' e non andavo da nessuna parte. Grazie! – eipi10

+0

Le funzioni del pannello riguardano ciò che appare all'interno delle caselle. Quindi, sì, la parola magica è "striscia". E confesso che mi ci sono voluti un paio di anni per imparare questa parola magica. –

+0

Un piccolo commento: mentre ero in grado di specificare globalmente tutti i comandi simili (es. 'Par.ylab.text = list (cex = 0.8)') tramite 'trellis.par.set()', questo non ha funzionato per ' par.strip.text = lista (CEX = 2) '. Deve essere specificato direttamente nel comando plot. Qualche idea del perché questo è il caso? – deca