Estou escrevendo uma função que combina texto e expressões para formar títulos de eixo para um gráfico de saída. O problema é que quando tento deixá-lo em negrito, ele não aplica esse estilo aos números. O código a seguir demonstra o problema.
test_func <- function(x_title) {
text <- '1'
ggplot(data.frame(x = 1:5, y = 1:5), aes(x, y)) +
geom_point() +
labs(x = parse(text = paste('bold(Part ~', text, ' ~', x_title, ')'))) +
theme(axis.title = element_text(face = 'bold'))
}
test_func('Value')
Para comparação, veja o que acontece quando insiro o título completo em expression(bold()).
ggplot(data.frame(x = 1:5, y = 1:5), aes(x, y)) +
geom_point() +
labs(x = expression(bold('Part 1 Value'))) +
theme(axis.title = element_text(face = 'bold'))
Também tentei adicionar theme(axis.title = element_text(face = 'bold'))
, mas não fez diferença.
Como faço para aplicar negrito a todas as partes da expressão?
Você pode usar:
Isso aparentemente substitui
ggplot2
face
o parâmetro, veja aqui .O problema é que quando você analisa, o valor de "1" em uma string parece um número, então ele analisa para
bold(Part ~ 1 ~ boo )
. E os recursos do plotmath não parecem gostar de números em negrito, mas vão colocar texto em negrito. Então, se você envolver o valor entre aspas, ele permanecerá uma stringOu você pode usar
bquote
e construir a string com pastaVocê pode usar
substitute
em vez distoexpression
aqui:Você poderia usar
ggtext
e fazer isso com markdown também. Por exemplo:Criado em 2024-10-15 com reprex v2.1.1