Subscritos em parcelas em R

95

Não consigo encontrar uma maneira de escrever subscritos no título ou no subtítulo em R. Como posso escrever v 1,2 com 1,2 como subscritos?

Obrigado pela ajuda!

Jeffrey
fonte

Respostas:

138

expression é seu amigo:

plot(1,1, main=expression('title'^2))  #superscript
plot(1,1, main=expression('title'[2])) #subscript
smu
fonte
3
Como carregar "2" da variável? Eu tenho um loop e preciso traçar x_ [1] x_ [2] x_ [3] ...
0x2207
6
Você pode usar bquoteao trabalhar com variáveis ​​subscritas. Diga, nIter <- 2então plot(1, 1, main = bquote(title[.(nIter)]))é exatamente o que você precisa (retirado da lista de discussão R-help ).
fdetsch
119

Se você deseja ter vários subscritos em um texto, use a estrela (*) para separar as seções:

plot(1:10, xlab=expression('hi'[5]*'there'[6]^8*'you'[2]))
Cyrille
fonte
6
Uau, uma resposta de dois dias para uma pergunta de dois anos, isso acabou sendo o que eu precisava. Obrigado!
Michael
2
E se você quiser que o subscrito seja uma string, basta colocá-lo entre aspas:plot(1:10, xlab=expression('hi'[5]*'there'[6]^8*'you'['down here']*'and'^'up'*'there'))
Stewart Macdonald
1
Essa é uma boa dica que você pode colocar [digits]ou [characters]ou mesmo [a5]no subscrito, mas não [5a]ou [a a]. Recentemente descobri isso para:expression('x'['10sdt'])
Cyrille
28

Veja? Expressão

plot(1:10,main=expression("This is a subscript "[2]))

insira a descrição da imagem aqui

correr atrás
fonte
10

Um subscrito e referindo-se a um valor armazenado ...

a <- 10
plot(c(0,1), c(0,1), type = 'n', ann = FALSE, xaxt = 'n', yaxt = 'n')
text(0.2, 0.6, cex = 1.5, bquote(paste('S'['f']*' = ', .(a))))

insira a descrição da imagem aqui

Tony Ladson
fonte
5

Outro exemplo, a expressão funciona para sobrescritos negativos sem a necessidade de aspas em torno do número negativo:

title(xlab=expression("Nitrate Loading in kg ha"^-1*"yr"^-1))

e você só precisa do * para separar seções conforme mencionado acima (quando você escreve um sobrescrito ou subscrito e precisa adicionar mais texto à expressão depois).

user29609
fonte
1
Obrigado por explicar explicitamente o que * faz!
Lalochezia,
4

Como outros usuários apontaram, nós usamos expression(). Eu gostaria de responder à pergunta original que envolve uma vírgula no subscrito:

Como posso escrever v 1,2 com 1,2 como subscrito?

plot(1:10, 11:20 , main=expression(v["1,2"]))

Além disso, gostaria de adicionar a referência para aqueles que procuram encontrar a expressionsintaxe completa na Rplotagem: Para obter mais informações, consulte a ?plotmathpágina de ajuda. A execução demo(plotmath)mostrará muitas expressões e sintaxe relevante.

Lembre-se de usar *para unir diferentes tipos de texto em uma expressão.

Aqui está um exemplo de saída de demo(plotmath):

insira a descrição da imagem aqui

Megatron
fonte