1

我有一个具有不同物种名称的载体。例如:

sp_names<-c("sp1","sp2","sp3")

我必须为每个物种制作一张地图,并且我需要在图例标题中以斜体字写下每个物种的名称。在 stackoverflow 上搜索我发现了一个建议使用susbtitute. 我试过这样:

legend(title=substitute(italic(sp_names), list(sp_names=sp_names[1])),
       "left",
       pch=21,col="black",pt.bg="darkgreen",
       legend = "Registro de ocorrência", 
       cex = 0.7,
       bty = "n")

但我有这个错误:

Error in legend(title = substitute(italic(title_leg), list(title_leg = title_leg[1])),  : 
  invalid 'title'

你可以帮帮我吗?谢谢

4

1 回答 1

2

根据?legend帮助页面,title=参数必须是

一个字符串或长度为一的表达式,给出要放置在图例顶部的标题。其他对象将被 as.graphicsAnnot 强制。

并且您正在尝试传入“调用”对象。你可以强迫你调用一个表达式as.expression()

legend(title=as.expression(substitute(italic(sp_names), list(sp_names=sp_names[1]))),
       "left",
       pch=21,col="black",pt.bg="darkgreen",
       legend = "Registro de ocorrência", 
       cex = 0.7,
       bty = "n")
于 2015-07-30T17:54:43.487 回答