R Создайте несколько графиков с разными названиями и названиями осей с помощью индексов и верхних индексов. - PullRequest
0 голосов
/ 03 января 2019

Я часами искал и пытался найти способ использовать выражения или цитаты, чтобы придумать способ создания нового заголовка для каждого графика, который я делаю.Проблема, с которой я столкнулся, заключается в том, что название заголовка меняется для каждого графика, и в каждом имени имеется разное количество индексов и индексов.Как мне отформатировать мой оператор "main =", чтобы изменить его на новое имя заголовка с различными подписками и надстрочными индексами, которые я хочу?

# This is the format I want to show on the graphs
# Title Graph1 = "Total pH"  (no super or subscripts)
# Title Graph2 = "Total NO3-"  where "3" subscript and "-" superscript
# Title Graph3 = "Total H2PO3-" where "2" subscript, "3" subscript, and "-" superscript
# Title Graph4 = "Total K+" where "+" is superscript

n <- c("pH", "NO3-", "H2PO3-", "K+")

for (j in n) {
    dev.new(width=10, height = 10)
    plot (x=2,y=3, main=j)
}

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Я бросил еще одну морщину в эту проблему.Я также хотел добавить другой текст в название заголовка, а также добавить подписки.Я наконец-то заставил его работать с командой "bquote".Просто добавьте этот пример кода на случай, если кто-то столкнется с такой проблемой и ищет решение.

# This is the format I want to show on the graphs
# Title Graph1 = "Houston - pH"  (no super or subscripts)
# Title Graph2 = "Los Angeles - (NO3-)"  where "3" subscript and "-" superscript
# Title Graph3 = "New York - (H2PO3-)" where "2" subscript, "3" subscript, and "-" superscript
# Title Graph4 = "Omahaa - (K+)" where "+" is superscript

SampleName <- c("Houston", "Los Angeles", "New York", "Omaha")

for (j in 1:4) {
    if (j==1) {
        n <-as.expression(bquote(.(SampleName[j])~'(pH)'))
    } else if (j==2) {
        n <-as.expression(bquote(.(SampleName[j])~'(NO'['3']^'-'*')'))
    } else if (j==3) {
        n <-as.expression(bquote(.(SampleName[j])~'(H'['2']*'PO'['3']^'-'*')'))
    } else {
        n <-as.expression(bquote(.(SampleName[j])~'(K'^'+'*')'))
    }
  dev.new(width=10, height = 10)
  plot (x=2,y=3, main=n )
}
0 голосов
/ 03 января 2019

Одним из способов является использование expression с нотацией plotmath для создания вектора желаемых выражений и последующего их последовательного выполнения.

n<-expression(pH, NO['3']^'-', H[2]~PO[3]^'-', K^'+')
for (j in n) {
  dev.new(width=10, height = 10)
  plot (x=2,y=3, main=j )
}

enter image description here

См. ?plotmath для синтаксиса обозначений.

...