如何使用wrap函数在GGally::ggpairs中使用黄土方法

如何使用wrap函数在GGally::ggpairs中使用黄土方法,r,ggplot2,loess,ggally,R,Ggplot2,Loess,Ggally,我试图复制Coursera R回归模型课程中给出的这个简单示例: require(datasets) data(swiss) require(GGally) require(ggplot2) ggpairs(swiss, lower = list(continuous = "smooth", params = c(method = "loess"))) 我希望看到一个6x6对图-瑞士数据中6个变量的每个组合的黄土更平滑和置信区间的散点图 但是,我得到以下错误: display_param_Er

我试图复制Coursera R回归模型课程中给出的这个简单示例:

require(datasets)
data(swiss)
require(GGally)
require(ggplot2)
ggpairs(swiss, lower = list(continuous = "smooth", params = c(method = "loess")))
我希望看到一个6x6对图-瑞士数据中6个变量的每个组合的黄土更平滑和置信区间的散点图

但是,我得到以下错误:

display_param_Error()中出错:'params'是不推荐使用的参数。 请“包装”函数以提供参数。帮助(“包装”,包装)= “GGally”)

我查看了
ggpairs()
wrap()
帮助文件,并尝试了大量使用参数arg()的
wrap()
wrap\u fn\u函数的排列

我可以让它按预期工作:

ggpairs(swiss, lower = list(continuous = wrap("smooth")))
但一旦我加入黄土部分,它就不会:

ggpairs(swiss, lower = list(continuous = wrap("smooth"), method = wrap("loess")))
当我尝试上面的线路时,我得到了这个错误

值[3L]中的错误:以下ggpair绘图函数 随时可用:连续:c('点','平滑','密度', “cor”,“blank”)组合:c('box','dot','facethist','facetdesignment', “denstrip”、“blank”)离散:c(“比率”、“facetbar”、“blank”)na: c('na','blank')

连续诊断:c('densityDiag','barDiag','blankDiag')诊断 离散:c('barDiag','blankDiag')diag na:c('naDiag','blankDiag'))

您还可以提供自己的函数,该函数遵循 函数(数据、映射等){…}并返回ggplot2绘图
object Ex:my_fn一个快速的方法是编写自己的函数。。。下面的一个是根据您问题中的
ggpairs
错误消息提供的一个进行编辑的

library(GGally)
library(ggplot2)    
data(swiss)

# Function to return points and geom_smooth
# allow for the method to be changed
my_fn <- function(data, mapping, method="loess", ...){
      p <- ggplot(data = data, mapping = mapping) + 
      geom_point() + 
      geom_smooth(method=method, ...)
      p
    }

# Default loess curve    
ggpairs(swiss[1:4], lower = list(continuous = my_fn))


这可能会对传递给每个
geon\uz

  my_fn <- function(data, mapping, pts=list(), smt=list(), ...){
              ggplot(data = data, mapping = mapping, ...) + 
                         do.call(geom_point, pts) +
                         do.call(geom_smooth, smt) 
                 }

# Plot 
ggpairs(swiss[1:4], 
        lower = list(continuous = 
                       wrap(my_fn,
                            pts=list(size=2, colour="red"), 
                            smt=list(method="lm", se=F, size=5, colour="blue"))))

my_fn也许您正在学习Coursera在线课程回归模型,并尝试将课程提供的Rmarkdown文件转换为html文件,然后像我一样遇到此错误

我尝试的方式是:

require(datasets); data(swiss); require(GGally); require(ggplot2)
g = ggpairs(swiss, lower = list(continuous = wrap("smooth", method = "lm")))
g

您也可以尝试使用
method=“leash”
,但结果与讲座中给出的结果有些不同
method=“lm”
可能更适合我所看到的。

我也怀疑你在上Coursera的课。 不过,我找不到任何包含ggplot示例的github回购协议

以下是我所做的工作:

gp = ggpairs(swiss, lower = list(continuous = "smooth"))
gp

谢谢你的建议,但是当我尝试你的代码时,我得到一个错误:未知参数:method@meenaparam就我而言,我没有错。一些
R.version
输出:平台
x86\u 64-pc-linux-gnu
,操作系统
linux-gnu
,version.string
R版本3.3.3(2017-03-06)
。这对我来说确实有效,他们一定已经更新了
ggally
,谢谢!谢谢@Firefighter1017,但这提供了线性拟合(
lm
),而不是我想要的更平滑的黄土。请参阅上面@scarain的答案,以使您的代码正常工作。
gp = ggpairs(swiss, lower = list(continuous = "smooth"))
gp