Изменение цветов и рамок в автоплоте
У меня есть данные с обработками, сделанными за два разных года (колонка "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")