Изменение цветов и рамок в автоплоте

У меня есть данные с обработками, сделанными за два разных года (колонка "Treat.year") и некоторые переменные среды. Я хочу сделать график рассеяния PCA, но я не могу понять, как изменить цвет точек.

Я хочу, чтобы точки в данной обработке (C или Ca) были одного цвета в обоих периодах отбора проб (например, все точки C синие и все точки Ca, зеленые независимо от года) и "кадры" для соединения баллы в соответствии с процедурами И год (т. е. рамка, соединяющая только баллы C.2009, другая - только баллы C.2015 и так далее)

ex <- data.frame(treat.year = c("C.2015", "C.2015", "C.2015", "C.2015", "Ca.2015", "Ca.2015", "Ca.2015", "Ca.2015", "C.2009", "C.2009", "C.2009", "C.2009", "Ca.2009", "Ca.2009", "Ca.2009", "Ca.2009"),
                 var.b = c(33, 18, 34, 28, 12, 11, 15, 13, 45, 52, 35, 39, 29, 27, 30, 27),
                 var.e = c(1.1, 0.5, 1.3, 1.2, 0, 0, 0, 0, 1.06, 0.96, 1.06, 0.58, 0.1, 0, 0, 0),
                 var.g = c(83.2, 53.6, 94.9, 80.8, 25.6, 29.2, 31.9, 29.8, 102.3, 83.9, 158.7, 126.6, 78.5, 186.9, 82.4, 62))

PCA1 <- prcomp(ex[ , 2:4], scale = TRUE)

library(ggfortify)
autoplot(PCA1, data = ex, colour = "treat.year", loadings = TRUE, 
         loadings.label = TRUE, frame = TRUE)

1 ответ

Лучше, если вы разделите «Treat.year» на две колонки. Затем вы можете изменить цвета по отдельности

      ex <- data.frame(treat.year = c("C.2015", "C.2015", "C.2015", "C.2015", "Ca.2015", "Ca.2015", "Ca.2015", "Ca.2015", "C.2009", "C.2009", "C.2009", "C.2009", "Ca.2009", "Ca.2009", "Ca.2009", "Ca.2009"),
                treat = c("C", "C", "C", "C", "Ca", "Ca", "Ca", "Ca", "C", "C", "C", "C", "Ca", "Ca", "Ca", "Ca"),
                 year = c("2015", "2015", "2015", "2015", "2015", "2015", "2015", "2015", "2009", "2009", "2009", "2009", "2009", "2009", "2009", "2009"),
                 var.b = c(33, 18, 34, 28, 12, 11, 15, 13, 45, 52, 35, 39, 29, 27, 30, 27),
                 var.e = c(1.1, 0.5, 1.3, 1.2, 0, 0, 0, 0, 1.06, 0.96, 1.06, 0.58, 0.1, 0, 0, 0),
                 var.g = c(83.2, 53.6, 94.9, 80.8, 25.6, 29.2, 31.9, 29.8, 102.3, 83.9, 158.7, 126.6, 78.5, 186.9, 82.4, 62))

PCA1 <- prcomp(ex[ , 2:4], scale = TRUE)

library(ggfortify)
autoplot(PCA1, data = ex, colour = "year", 
         loadings.label = T,  frame.colour="treat.year", frame=T)+theme(legend.position = "none")
Другие вопросы по тегам