L'unica cosa che spesso gli utenti non riescono a cogliere è che invariabilmente non c'è bisogno di citare stringhe e paste
insieme quando vengono utilizzate in un'espressione per un'etichetta di stampa. Di solito è più semplice utilizzare direttamente gli strumenti di layout (ad esempio ~
e *
). Per esempio:
df <- data.frame(y = rnorm(100), x = rnorm(100))
plot(y ~ x, data = df,
ylab = expression(Average ~ Conc ~ of ~ S- ~ on ~ plates ~
(mu ~ Moles ~ cm^{-2} ~ dry ~ wt)),
xlab = expression(Concentration ~ Cl ~ (mu ~ moles ~ g^{-1} ~ dry ~ wt)))
In alternativa, è possibile includere le stringhe per le sezioni più lunghe di testo; in questo caso è senza dubbio più facile da fare:
plot(y ~ x, data = df,
ylab = expression("Average Conc of S- on plates" ~
(mu ~ moles ~ cm^{-2} ~ "dry wt")),
xlab = expression("Concentration Cl" ~ (mu ~ moles ~ g^{-1} ~ "dry wt")))
ma nota non v'è alcuna necessità di paste
stringhe e altre caratteristiche qui.
Entrambi producono:
Annotare il plotmath problema ha con l'apice 2. Si può decidere di aggiungere un po 'di spazio in più per il margine asse y per ospitare che:
op <- par(mar = c(5,4.5,4,2) + 0.1)
plot(y ~ x, data = df,
ylab = expression("Average Conc of S- on plates" ~
(mu ~ moles ~ cm^{-2} ~ "dry wt")),
xlab = expression("Concentration Cl" ~ (mu ~ moles ~ g^{-1} ~ "dry wt")))
par(op)
producendo
fonte
2013-04-01 01:38:08
'bquote' è un po 'eccessivo qui. 'expression' dovrebbe funzionare bene. 'bquote' è molto utile quando si vuole sostituire un oggetto nell'espressione con il suo valore. –
@GavinSimpson, grazie, è bello saperlo! Sembra che 'expression' faccia anche un lavoro migliore con la spaziatura dei caratteri di' bquote', ho alcuni spazi dispari vicino alle parentesi sulla mia trama ... – Ben
Questo perché si usa '~ mu ~' per separare i due stringhe citate. Se lo imposti a '* mu ~' otterrai la giusta spaziatura. '~' è un operatore di spaziatura, '*' giustappone gli argomenti (cioè senza uno spazio). –