我将 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),我只得到整体(黑色)相关性,没有任何彩色组相关性了。虽然它们以前显示过,但颜色和组的匹配错误。为什么它们不再显示?
以下代码生成 this ,颜色和组不匹配。
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"))}))