Цвета, не отображаемые на точках рассеяния - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь провести анализ RDA, и для этого мне пришлось создать график с моими SNP (точками на диаграмме рассеяния). Я назначил цвета своим точкам, но как только я нарисовал их, они не были заполнены и вместо этого были выделены белые круги серым цветом. Прикрепленный - мой код, и прикрепленный - изображение того, что я получил, и изображение того, на что я хочу, чтобы это было похоже. Также приложено изображение меньшего набора данных, чтобы было легче увидеть, что я делаю! Заранее спасибо!

#gen1 Dataset
 POP   L0001 L0002 L0003
   <chr> <dbl> <dbl> <dbl>
 1 AK        0     1     0
 2 NU       -1    -1    -1
 3 GR        1     0     0
 4 LB        0     1     0
 5 NF        1     0     0
 6 ST        0     0     0
 7 NS       -1     2     0
 8 NB        1     2     0
 9 ME        0     1     0
10 IC        0     0     0
11 FI        0     0     0

#env1 dataset
POP   CHLa.max CHLa.min CHLa.avg
   <chr>    <dbl>    <dbl>    <dbl>
 1 AK       2.07    0.0623    0.780
 2 NU       0.943   0.0697    0.245
 3 GR       2.03    0.0494    0.453
 4 LB       1.55    0.263     0.678
 5 NF       1.63    0.190     0.698
 6 ST       2.40    1.17      1.74 
 7 NS       1.14    0.0708    0.447
 8 NB       1.79    0.231     0.900
 9 ME       1.69    0.131     0.711
10 IC       2.28    0.147     0.892
11 FI       0.554   0.0569    0.207

#Specify columns
gen1<-gen1[2:4]

#Specify predictors
pred1<-subset(env1[,1])

#Conduct RDA
BLGU.rda <- rda(gen1 ~ ., data=pred1, scale=T)
BLGU.rda

#Define Populations
levels(env1[["POP"]]) <- c("AK", "NU", "GR", "LB", "NF", "ST", "NS", "NB", "ME", "IC", "FI")

#Give Populations Callback Name
eco1 <- env1[["POP"]]

#Assign Colours
bg <- c("#fa8a6b", "#5d7142", "#010c22", "#61cd9e", "#7110b6", "#15c4df", "#892f74", "#0615f3", "#b6faea", "#e402b1", "#ad4833")

#Plot RDA
plot(BLGU.rda, type="n", scaling=2)

#Plot populations
points(BLGU.rda, display="sites", pch=21, cex=1.3, col="gray32", scaling=2, bg=bg[eco])

env1 Данные

gen1 Данные

Разброс графиков RDA (SNPs против экологических Предикторы

Диаграмма разброса того, как я хочу, чтобы мои данные выглядели

1 Ответ

0 голосов
/ 14 февраля 2020

То, что вы хотите сделать, - это построить точки данных на rda и раскрасить их в соответствии с одним столбцом, если я вас правильно понял.

Ваши данные (на чтение которых требуется некоторое время):

env1 <- structure(list(POP = structure(c(1L, 10L, 3L, 5L, 8L, 11L, 9L, 
7L, 6L, 4L, 2L), .Label = c("AK", "FI", "GR", "IC", "LB", "ME", 
"NB", "NF", "NS", "NU", "ST"), class = "factor"), CHLa.max = c(2.07, 
0.943, 2.03, 1.55, 1.63, 2.4, 1.14, 1.79, 1.69, 2.28, 0.554), 
    CHLa.min = c(0.0623, 0.0697, 0.0494, 0.263, 0.19, 1.17, 0.0708, 
    0.231, 0.131, 0.147, 0.0569), CHLa.avg = c(0.78, 0.245, 0.453, 
    0.678, 0.698, 1.74, 0.447, 0.9, 0.711, 0.892, 0.207)), class = "data.frame", row.names = c(NA, 
-11L))

gen1 <- structure(list(POP = structure(c(1L, 10L, 3L, 5L, 8L, 11L, 9L, 
7L, 6L, 4L, 2L), .Label = c("AK", "FI", "GR", "IC", "LB", "ME", 
"NB", "NF", "NS", "NU", "ST"), class = "factor"), L0001 = c(0L, 
-1L, 1L, 0L, 1L, 0L, -1L, 1L, 0L, 0L, 0L), L0002 = c(1L, -1L, 
0L, 1L, 0L, 0L, 2L, 2L, 1L, 0L, 0L), L0003 = c(0L, -1L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L)), class = "data.frame", row.names = c(NA, 
-11L))

Шаги и график, пожалуйста, включите библиотеки в следующий раз:

library(vegen)
BLGU.rda <- rda(gen1[,-1] ~ as.matrix(env1[,-1]), scale=T)

#Assign Colours
bg <- c("#fa8a6b", "#5d7142", "#010c22", "#61cd9e", "#7110b6", "#15c4df", "#892f74", "#0615f3", "#b6faea", "#e402b1", "#ad4833")
names(bg) <- c("AK", "NU", "GR", "LB", "NF", "ST", "NS", "NB", "ME", "IC", "FI")

plot(BLGU.rda, type="n", scaling=2)
points(BLGU.rda, display="sites", pch=21, cex=1.3, col="gray32", scaling=2, bg=bg[as.character(env1$POP)])
legend("topright",fill=bg,names(bg),ncol=3)

enter image description here

...