R 彩虹色传奇

R 彩虹色传奇,r,R,我一直在尝试用彩虹选项为R情节创造传奇,但我面临一些困难 我策划 plot(test$a,test$b, col = rainbow(length(test$s))[rank(test$s)]) 颜色根据测试$s指定。问题是test$s对于数据帧测试的许多值都是相等的,所以如果我写 legend('topright',legend=test.sub$s,col=rainbow(length(test.sub$s)) [rank(test.sub$s)]) 我在图例中得到了测试$s的所

我一直在尝试用彩虹选项为R情节创造传奇,但我面临一些困难

我策划

plot(test$a,test$b, col = rainbow(length(test$s))[rank(test$s)])
颜色根据测试$s指定。问题是test$s对于数据帧测试的许多值都是相等的,所以如果我写

    legend('topright',legend=test.sub$s,col=rainbow(length(test.sub$s))
[rank(test.sub$s)])
我在图例中得到了测试$s的所有副本,但颜色是正确的。因为我不想要我写的副本

    legend('topright',legend=unique(test.sub$s),col=rainbow(length(test.sub$s))
[rank(test.sub$s])
但是所有的颜色都被弄乱了


提前感谢

您的问题是
唯一(test.sub$s)
的长度与
彩虹(length(test.sub$s))[rank(test.sub$s]
的长度不同。我的解决方案是:

col=rainbow(length(test.sub$s))[rank(test.sub$s)[!duplicated(test.sub$s)]]
我把图例('topright',图例=唯一(test.sub$s),列=彩虹(length(test.sub$s))[rank(test.s‌​ub$s)][!重复(test.sub$s)],pch=1,cex=0.8,ncol=6),但它只给我两种颜色