我是R语言的新手,所以即使这个问题对你来说有点愚蠢,请耐心听我解释。
我想在rgl图上绘制一个图例,显示颜色的含义(即图形上的彩色球对应的数字)。以下是我编写的构建代码:
plot3d(t$x,t$y,t$z,col=colors,type = 's', size=4,
xlim=8, ylim=8, zlim=8, image=TRUE, legend=TRUE, lty=1, cex=0.5)
我在互联网上搜遍了所有地方,但是我找不到如何在‘RGL’图上放置图例的方法。每个地方都说如何在使用‘graphics’包中的‘plot’函数绘制的图形上放置图例。此外,我还尝试了以下代码(除上面提到的代码之外):
plot3d(t$x,t$y,t$z,col=colors,type = 's', size=4,xlim=8,ylim=8,zlim=8)
legend(100,100,c("Zero",
"Between 1 and 10","Between 10 and 25",
"Between 25 and 50","Between 50 and 70",
"More than 70","Other"),
lty=c(l,l,l,l,l,l,l), lwd=c(2.5,2.5,2.5,2.5,2.5,2.5,2.5),
col=c("White", "Red", "Orange", "Yellow", "Green", "Blue", "Magenta"))
我得到了以下输出:
Error in strwidth(legend, units = "user", cex = cex, font = text.font) :
plot.new 尚未被调用
请告诉我如何解决它。谢谢。
rgl
包,但你的第二次尝试失败并显示错误信息是有充分理由的。你正在“混合”多个图形API。R有三个主要的图形库:基本图形(如plot等)、lattice和ggplot2,更不用说其他特殊用途的库,例如rgl。虽然这些库有时会共享一些组件,但它们通常基于非常不同的原则,并且不能互操作。例如,legend()
属于基本图形,并且仅适用于注释现有的绘图[由基本图形创建]。 - mjvrgl
是否使用类似的系统,即首先创建一个图,然后注释它(带有图例、标题、额外线条等),而不是要求所有注释都在绘图创建调用时引入。也许您可以查看文档,并以此特定的见解来找出注释是在初始绘图中创建还是之后添加的(然后找到相关的API调用和/或选项)。 - mjv