按R系数着色的绘图-未专门指定颜色循环

按R系数着色的绘图-未专门指定颜色循环,r,plot,R,Plot,抱歉,如果以前有人问过,我试过寻找,但在R中为情节分配颜色是一个非常广泛的话题。另外,我没有为您添加数据,因为数据量很大(我认为不需要,因为这不是错误消息问题)。使用数据样本编辑: PC1 PC2 colour [1,] "-25.5987648792402" "3.41673760040586" "blue" [2,] "-18.1520720669261" "2.09819717146663" "green" [

抱歉,如果以前有人问过,我试过寻找,但在R中为情节分配颜色是一个非常广泛的话题。另外,我没有为您添加数据,因为数据量很大(我认为不需要,因为这不是错误消息问题)。使用数据样本编辑:

      PC1                 PC2                colour
[1,] "-25.5987648792402" "3.41673760040586"  "blue" 
[2,] "-18.1520720669261" "2.09819717146663"  "green"
[3,] "-22.1308426042819" "3.46021550506459"  "green"
[4,] "-27.7950466967456" "-3.64374133124297" "gold" 
[5,] "-25.2414233662759" "-1.75802702655264" "green"
[6,] "-13.5641450885194" "2.70296369323088"  "green"
[7,] "-27.1954041315429" "6.44022518338822"  "blue" 
[8,] "-14.0474589982648" "3.00996494287365"  "red"  
[9,] "-40.1604532835109" "-27.6333759665025" "gold" 
[10,] "-26.6708536765817" "-5.0610016520552"  "red"  
[11,] "-21.4727890084845" "4.51825527258536"  "green"
[12,] "-21.2239456479504" "8.48862307072586"  "black"
[13,] "-25.0901196732896" "0.609916921307137" "blue" 
[14,] "-32.7132657746404" "-17.00161594225"   "gold" 
[15,] "-27.0815551977454" "10.5198515619958"  "black"
[16,] "-21.2961394099536" "9.53841507233795"  "black"
[17,] "-23.3675032692574" "3.36809622698634"  "black"
[18,] "-22.9904562811844" "11.9580087306051"  "black"
[19,] "-22.5073852494145" "1.30688136244357"  "gold" 
[20,] "-18.6259166632196" "5.51825251437074"  "gold" 
[21,] "-24.7138325079293" "-5.88117174408046" "red"  
[22,] "-19.2386902822007" "6.74347285527281"  "gold" 
[23,] "-29.3603972846236" "1.42048147132848"  "red"  
[24,] "-9.8526393614268"  "7.24233907420527"  "red"  
[25,] "-34.6289373905791" "3.655343260247"    "red"  
我一直在尝试用一个分类变量($BIO)着色的点来绘制主成分1和2。首先我选择了颜色:

my.colours <- c("blue", "red", "green", "gold", "black")
names(my.colours) = c("WNT", "SHH", "G3", "G4", "unknown")
然后我试着用这一栏的颜色来绘制图表

for (csv in 1:length(csvs)){
for (pc in 1:length(pcas)){
pdf(paste("coloured 2D PCA plot of bio",types[pc],".pdf"))
plot(pcas[[pc]]$x[,c(1, 2)], col=csvs[[csv]]$colour, main =paste("2D PCA plot of ",types[pc]))
 dev.off()}}
该图显示了正确的颜色,但它们不是由它来自的样本指定的(例如,有5个蓝点-样本中只有3个蓝点)。似乎通过循环my.colors而不是$color列为样本指定了颜色?我怎样才能把这乱七八糟的东西修好

谢谢你的帮助


Dominic

即使您没有处理错误,您的数据样本也有助于回答问题,这样我们就可以达到您当前的输出,并从中获得所需的输出。我现在附上了它,如果您可以显示一些
CSV
PCA
,那将是理想的,由于问题似乎是如何将
csv
中的颜色分配给
pcas
的内容。我不确定这些列表中的哪些部分会有用。我上面显示的数据是pcas[[pc]]1:2和csvs[[csv]]$COLOR的cbind。您共享的部分数据在按预期绘制时没有问题,我怀疑您面临的问题取决于颜色分配给$BIO的方式。我可以发布一个答案,其中包括一种不循环我的.colors的方法。
csvs[[csv]]$colour [1] "blue"  "green" "green" "gold"  "green" "green" "blue"  "red"   "gold"  "red"   "green" "black" "blue"  "gold"  "black" "black" "black" "black" "gold" [20] "gold"  "red"   "gold"  "red"   "red"   "red"  
for (csv in 1:length(csvs)){
for (pc in 1:length(pcas)){
pdf(paste("coloured 2D PCA plot of bio",types[pc],".pdf"))
plot(pcas[[pc]]$x[,c(1, 2)], col=csvs[[csv]]$colour, main =paste("2D PCA plot of ",types[pc]))
 dev.off()}}