我正在尝试复制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'是已弃用的参数。
请“包装”该函数以提供参数。 help(“ wrap”,package =
“ GGally”)


我浏览了ggpairs()wrap()帮助文件,并尝试了wrap()wrap_fn_with_param_arg()函数的许多排列。

我可以使它按预期工作:

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


但是,一旦我添加了黄土部分,它就不会:

ggpairs(swiss, lower = list(continuous = wrap("smooth"), method = wrap("loess")))


当我尝试上面的行时出现此错误。


value [3L]的错误:以下ggpair图函数
随时可用:连续:c('points','smooth','density',
'cor','blank')组合:c('box','dot','facethist','facetdensity',
'denstrip','blank')离散的:c('ratio','facetbar','blank')na:
c('na','blank')

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

您还可以提供遵循api的自己的函数
函数(数据,映射等){。 。 。并返回ggplot2图
对象示例:my_fn ggplot(数据=数据,映射=映射)+
} ggpairs(数据,较低=列表(连续= my_fn))

提供的功能:黄土


显然我在错误的地方输入了黄土。谁能帮助我了解如何添加黄土部分?

请注意,我的问题与this one不同,因为自从params参数被弃用以来,我在问如何在ggpairs中实现黄土。

非常感谢。

最佳答案

一种快速的方法是编写您自己的函数...下面的一个是从您问题中的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))


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

# Use wrap to add further arguments; change method to lm
ggpairs(swiss[1:4], lower = list(continuous = wrap(my_fn, method="lm")))


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



这也许可以更好地控制传递给每个geon_的参数。

  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"))))

关于r - 如何使用wrap函数在GGally::ggpairs中使用黄土方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35085261/

10-12 17:36
查看更多