如何在 base R plot 中仅将一个图例名称设为斜体?

How to only make one legend name italic in base R plot?

我想在图例中添加一个图例,其中 只有一个图例名称是斜体的。我在 base R.

中使用 plot()

我试过的方法不起作用:

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

如何正确执行此操作?

注意:我宁愿有一个 不需要 多次调用 legend() 的解决方案。

你可以使用 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))) ))