我正在尝试复制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))
# Use wrap to add further arguments; change method to lm
ggpairs(swiss[1:4], lower = list(continuous = wrap(my_fn, method="lm")))
这也许可以更好地控制传递给每个
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/