为什么我在 ChartJSRadar() 之后调用 legend() 时会收到“plot.new 尚未被调用”的信息

Cho*_*ith 2 r legend chart.js

这里的上下文是 R 统计计算项目

考虑以下代码(来自 ChartJSRadar 文档)

library(radar chart)
labs <- c("Communicator", "Data Wangler", "Programmer",
      "Technologist",  "Modeller", "Visualizer")

scores <- list(
  "Rich" = c(9, 7, 4, 5, 3, 7),
  "Andy" = c(7, 6, 6, 2, 6, 9),
  "Aimee" = c(6, 5, 8, 4, 7, 6)
)

chartJSRadar(scores = scores, labs = labs, maxScale = 10)
Run Code Online (Sandbox Code Playgroud)

我想在使用时添加一个图例:

legend("topleft", c("Rich","Andy","Aimee"), cex=0.8, fill=colors)
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

Error in strwidth(legend, units = "user", cex = cex, font = text.font) : 
  plot.new has not been called yet
Run Code Online (Sandbox Code Playgroud)

我见过很多关于此错误消息的其他问题。其中一些是因为图例坐标不在图表中。其他一些人给出了解决方法,但没有解释为什么会出现错误。

我的问题是:为什么我会收到此错误?这似乎是根本错误的,比如 legend() 和 ChartJSRadar() 之间的不兼容,但我不明白。

请指教!

小智 5

如果使用 R Studio,请确保运行整个块(而不是 ctr + Enter)。我使用 igraph 时遇到了类似的问题。我尝试将图例附加到图表上,但出现了相同的错误消息。运行整个块有效。