所以我在R中制作了一个情节,有很多不同的颜色表明我的23个类别中哪一个属于一个点。点的颜色通过矢量(stratumcol,这是一个23级的因子)添加。
当我添加图例时,试图让它显示颜色及其类别,似乎它们不匹配(使用ordihull进行测试,请参见下图)。
这是我的情节代码:
plot(pca_nmdsscores, type = "n")
points(pca_nmdsscores, col=stratumcol, cex=1.5, pch = 15)
legend("right","top",levels(stratumcol),cex=.8, col = as.numeric(stratumcol), pch =15, lty = 0) # pch = stratumcol
ordihull(pca_nmdsscores, groups = stratumcol,draw = "polygon", col ="purple",label = T, show.groups = "LateMoistRich")
ordihull(pca_nmdsscores, groups = stratumcol,draw = "polygon", col ="blue",label = T, show.groups = "MidWetPoor")
这里我的Rplot应该是可见的。如你所见,我的类别" MaleMoistRich"将点与粉红色相连,但在图例中,这种颜色命名为" MidMoistRich"。
同样适用于" MidWetPoor",连接中蓝点,在图例中,这种颜色指的是" LateMoistPoor"。
如何解决这个问题?
我尝试寻找解决方案,但没有遇到任何可以解决的问题 - 包括"独特的" (它不会改变任何东西,因为我的调色板已定义为23种颜色,所以无论如何都不需要回收它们)
[来自R的图,显示图例和点颜色] [1]
好的 - 所以,因为我是新手,我无法上传我的情节图片......
但请在此处查看:http://i.stack.imgur.com/pzn2y.png
/感谢
编辑: 解决方案是不要在我的因素上使用levels()!不在legend = levels(stratumcol)中,也不在col = levels(stratumcol)中。 Richard和DeveauP建议的水平可能是问题。
这造成了一个新问题:我的legen显示了整个因素,而不仅仅是其中的水平(但颜色对应于正确的点颜色,这是原始问题)。
这个新问题通过使用" unique()"而不是" levels()"。
legend("Right","top",legend=unique(stratumcol), cex=.8, col = unique(stratumcol), pch=15, lty=0)
我找到了解决方案
答案 0 :(得分:1)
尝试
legend("right","top",legend = levels(stratumcol),cex=.8, col = levels(stratumcol), pch =15, lty = 0)