GGally::ggpairs 绘制相关系数时如何去除网格线

17

GGally::ggpairs绘制了一些漂亮的图形,例如下面这个。我想要进一步改进它的唯一方法是删除绘图的上部分所有网格线(即相关系数所在的区域),并且或许还可以在每个上部图形周围绘制一个矩形。

GGally::ggpairs绘制漂亮的图表,如下所示。我希望进一步改善它的唯一方法是删除绘图的上半部分中所有的网格线,其中包含相关系数,同时也可能需要在每个上部子图周围绘制一个矩形。

library("GGally")
data(iris)
ggpairs(iris[, 1:4], lower=list(continuous="smooth", params=c(colour="blue")),
  diag=list(continuous="bar", params=c(colour="blue")), 
  upper=list(params=list(corSize=6)), axisLabels='show')

输入图像描述


这个问题在SO上是不相关的,因为它完全集中于特定软件的代码。请在帮助中心查看有关软件相关问题的建议。 - Nick Cox
看一下类似的问题,可能会有帮助。 - tonytonov
1个回答

11

请查看此相关问题以及我的派生仓库。使用assignInNamespace函数来修改ggally_cor函数,如上述问题所示。

唯一需要做的就是修改theme调用:

  theme(legend.position = "none", 
        panel.grid.major = element_blank(), 
        axis.ticks = element_blank(), 
        panel.border = element_rect(linetype = "dashed", colour = "black", fill = NA))

在此输入图片描述


我理解得对吗?这种方法需要从源代码重新构建GGally包吗?还是已经被推到了原始代码库中(或者将要被推到)?谢谢! - Aleksandr Blekh
@AleksandrBlekh 1) 是的,要么就像链接问题中描述的那样通过assignInNamespace替换函数;2) 我真的没有联系过包的作者/维护者,所以我会说不。更重要的是,我不确定我的修复是否与当前版本的包兼容,尽管它很可能是。 - tonytonov
谢谢您的快速回复!如果您不介意快速浏览一下,我会很感激您对我的问题在这里的反馈:http://stackoverflow.com/q/25598485/2872891。 - Aleksandr Blekh
你好!最近我安装了你的 GGally 版本,并在测试过程中发现 ggcorr() 函数的 geom 参数中的 "circle" 参数不像预期那样工作。你有注意到这种行为吗?根据你的更改,它应该可以正常工作。你觉得呢? - Aleksandr Blekh
@AleksandrBlekh,你能提供一份最小的代码吗?这可能是包的新版本或其他什么东西。我会仔细看一下它。 - tonytonov
我找到了问题所在。在我的例子中,我使用了geom参数的"circle"参数。看起来在某个时候名称已经更改为"point",使原始选项过时。要么是这样,要么我正在适应的示例使用了错误的名称。无论如何,"point"可以工作,但在视觉上不是很令人愉悦,因为圆圈有粗糙的边缘。不过这不是什么大问题。 - Aleksandr Blekh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接