我想更改GGally函数ggpairs的调色板。当我尝试将ggplot命令添加到使用getPlot返回的ggplot时,颜色不会改变。

my_pair_plot = ggpairs(dataset, color="var1")
getPlot(my_pair_plot,2,1) + scale_fill_brewer(palette = "Set2")


尝试将ggplot命令直接放在ggpairs函数上会导致错误。

ggpairs(dataset, color="var1") + scale_fill_brewer(palette = "Set2")

最佳答案

原来,这是可能的!它需要查找源代码,但是该解决方案非常容易实现。我们对ggpairs函数感兴趣,所以第一步只是

ggpairs


让我们看看是否可以找到任何映射到填充或颜色的aes映射。确实,

combo_aes <- addAndOverwriteAes(aes_string(x = xColName,
            y = yColName, ...), section_aes)


我们可能希望它能按照它说的做。两个重要说明:


ggpairs调用的省略号中应包含颜色和填充色
使用aes_string()


让我们尝试一下:

ggpairs(diamonds[, 1:2], colour='cut')




太好了,我们快到了!我们只需要覆盖调色板即可。请注意,类似您的提议

ggpairs(diamonds[, 1:2], colour='cut') + scale_fill_brewer(palette = "Set2")


将不会工作,因为ggpairs对象不是ggplot,因此+表示法不能以任何方式直接适用。但是,here提供了简单的解决方法。交叉手指,然后...

ggplot <- function(...) ggplot2::ggplot(...) + scale_fill_brewer(palette="Set2")
ggpairs(diamonds[, 1:2], colour='cut')

关于r - 有没有办法使用ggplot更改GGally::ggpairs的调色板?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14711550/

10-12 20:12