Я использую ggpairs для данных с 3 группами.Проблема состоит в том, что не все переменные имеют все группы, и поэтому для некоторых корреляций нужно только показать 2 группы.Из-за автоматического алфавитного упорядочения групп по ggpairs раскраска не согласована.Первый цвет всегда присваивается первому уровню фактора.(Например: группа 1 = красный, группа 2 = синий, группа 3 = зеленый. Но с переменными, имеющими только вторую и последнюю группу: группа 2 = красная и группа 3 = синий.)
Я пыталсяРешите эту проблему самостоятельно, добавив scale_colour_manual следующим образом:
scale_colour_manual(values = c("group1"="#F8766D", "group2"="#00BA38", "group3"="#619CFF"))
Это работает для графиков плотности на диагонали (ggally_densityDiag) и для диаграмм рассеяния в нижней части (ggally_points), нодля корреляций (ggally_cor) я получаю только общие (черные) корреляции и больше нет цветных групповых корреляций.Хотя они отображались раньше, но с неправильным соответствием цветов и групп.Почему они больше не отображаются?
Следующий код генерирует это , цвета и группы не совпадают.
ggpairs(output.b[,c(13,17,18)], aes(colour = as.factor(output.b$country), alpha = 0.4),
upper = list(continuous = function(data, mapping, ...) {
ggally_cor(data = output.b, mapping = mapping) + scale_colour_manual(values = c("#F8766D", "#00BA38", "#619CFF"))}),
lower = list(continuous = function(data, mapping, ...) {
ggally_points(data = output.b, mapping = mapping) + scale_colour_manual(values = c("#F8766D", "#00BA38", "#619CFF"))}),
diag = list(continuous = function(data, mapping, ...) {
ggally_densityDiag(data = output.b, mapping = mapping) + scale_fill_manual(values = c("#F8766D", "#00BA38", "#619CFF"))}))
Адаптированный код сгенерировал эту , цветную группукорреляции больше не отображаются.
ggpairs(output.b[,c(13,17,18)], aes(colour = as.factor(output.b$country), alpha = 0.4),
upper = list(continuous = function(data, mapping, ...) {
ggally_cor(data = output.b, mapping = mapping) + scale_colour_manual(values = c("group1"="#F8766D", "group2"="#00BA38", "group3"="#619CFF"))}),
lower = list(continuous = function(data, mapping, ...) {
ggally_points(data = output.b, mapping = mapping) + scale_colour_manual(values = c("group1"="#F8766D", "group2"="#00BA38", "group3"="#619CFF"))}),
diag = list(continuous = function(data, mapping, ...) {
ggally_densityDiag(data = output.b, mapping = mapping) + scale_fill_manual(values = c("group1"="#F8766D", "group2"="#00BA38", "group3"="#619CFF"))}))