Индексы на графиках в R

96

Я не могу найти способ записать индексы в заголовке или подзаголовок в R. Как мне написать v 1,2 с 1,2 в качестве индексов?

Спасибо за вашу помощь!

Джеффри
источник

Ответы:

138

expression твой друг:

plot(1,1, main=expression('title'^2))  #superscript
plot(1,1, main=expression('title'[2])) #subscript
smu
источник
3
Как загрузить "2" из переменной? У меня есть цикл, и мне нужно построить x_ [1] x_ [2] x_ [3] ...
0x2207
6
Вы можете использовать bquoteпри работе с индексированными переменными. Скажем, nIter <- 2тогда plot(1, 1, main = bquote(title[.(nIter)]))это именно то, что вам нужно (взято из списка рассылки R-help ).
fdetsch 07
120

Если вы хотите иметь несколько нижних индексов в одном тексте, используйте звездочку (*) для разделения разделов:

plot(1:10, xlab=expression('hi'[5]*'there'[6]^8*'you'[2]))
Кирилл
источник
6
Вау, ответ двухдневной давности на вопрос двухлетней давности оказался именно тем, что мне было нужно. Спасибо!
Майкл
3
И если вы хотите, чтобы нижний индекс был строкой, просто заключите его в кавычки:plot(1:10, xlab=expression('hi'[5]*'there'[6]^8*'you'['down here']*'and'^'up'*'there'))
Стюарт Макдональд
1
Это хороший совет, так как вы можете поставить [digits]или [characters]или даже [a5]в нижний индекс, но не [5a]или [a a]. Я недавно обнаружил это для:expression('x'['10sdt'])
Cyrille
28

Видишь? Выражение

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

введите описание изображения здесь

гнаться
источник
10

Нижний индекс и ссылка на сохраненное значение ...

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))))

введите описание изображения здесь

Тони Ладсон
источник
5

Другой пример, выражение работает с отрицательными надстрочными индексами без необходимости заключать в кавычки отрицательное число:

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

и вам нужен только * для разделения разделов, как упомянуто выше (когда вы пишете надстрочный или подстрочный индекс и вам нужно добавить дополнительный текст к выражению после).

user29609
источник
1
Спасибо за подробное объяснение того, что делает *!
Lalochezia
4

Как отмечали другие пользователи, мы используем expression(). Я хотел бы ответить на исходный вопрос, который включает запятую в нижнем индексе:

Как я могу написать v 1,2 с 1,2 в качестве индексов?

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

Кроме того, я хотел бы добавить ссылку для тех, кто хочет найти полный expressionсинтаксис Rпостроения графиков: Для получения дополнительной информации см. ?plotmathСтраницу справки. Выполнение demo(plotmath)продемонстрирует множество выражений и соответствующий синтаксис.

Не забывайте использовать *для объединения разных типов текста в выражении.

Вот некоторые из примеров вывода demo(plotmath):

введите описание изображения здесь

Мегатрон
источник