Как сделать только одну легенду с именем курсивом в сюжете базы R?

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

  • Тем не менее, мне нужно, чтобы эта строка курсивом содержала номера переменных, поэтому я использую bquote,

То, что я пробовал, не работает:

  a <- 2 ; b <- 5
  plot(a,b)
  l1 <- bquote(Italic ~ .(a) + .(b))
  l2 <- bquote(a + b)
  legend(x='topright',legend = bquote(italic(.(l1))))
  legend(x='topleft',legend = c(bquote(italic(.(l1))),l2))
  • Обратите внимание, что когда я оставляю выражение самостоятельно (RIGHT LEGEND), оно выделяется курсивом правильно. Однако, когда я добавляю текст для других строк легенды, он портится (LEFT LEGEND).

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

Как мне правильно сделать это?

Примечание: я предпочел бы иметь решение, которое не требует нескольких звонков legend() ,

2 ответа

Решение

Вы могли бы использовать text.font = 3, сказать:

legend(x='topleft',legend = c(bquote((.(l1))),l2), text.font=c(3,1))

Вы должны использовать as.expression заставить все в объект выражения.

a <- 2
b <- 5
plot(a,b)
legend("topleft", legend = c(as.expression(bquote(italic("Italic: "*.(a)*" + "*.(b)))),
    as.expression(bquote("Non Italic: "*.(a)*" + "*.(b)))) )

Чтобы изменить ваш пример

a <- 2
b <- 5
plot(a,b)
l1 <- bquote(Italic ~ .(a) + .(b))
l2 <- bquote(a + b)
legend("topleft", legend =  c(as.expression(bquote(italic(.(l1)))),
                            as.expression(bquote(.(l2))) ))
Другие вопросы по тегам