【问题标题】:Why am I getting error while modifying "hydrogeo" function in R? [duplicate]为什么在 R 中修改“hydrogeo”函数时出现错误? [复制]
【发布时间】:2020-05-16 23:54:06
【问题描述】:

我在 R 中使用“hydrogeo”包来绘制风笛图。 我想在函数中进行一些编辑以自定义绘图。

但是,当我使用以下命令时

trace("hydrogeo", edit=TRUE)

我收到以下错误

Error in getFunction(what, where = whereF) : no function ‘hydrogeo’ found

我尝试使用相同的命令编辑其他功能并且它有效,例如,

trace("semiMarkov", edit=TRUE)

如何解决这个错误?

【问题讨论】:

  • 我对那个函数并不特别熟悉,但是你有什么理由不能只写一个函数的包装器吗?
  • 我不知道包装器是什么。
  • 喜欢而不是编辑函数本身,编写一个函数来调用 that 函数,并使用您想要自定义的任何参数。 en.wikipedia.org/wiki/Wrapper_function 但如果问题只是这个函数实际上不在包中,那么它是一个错字/不可重现

标签: r function package


【解决方案1】:

如错误消息中所述,hydrogeo 不是 hydrogeo 包的功能。

可用的功能有:

library(hydrogeo)
ls("package:hydrogeo")
[1] "piper"      "piperPaper" "plot"       "testData"   "toPercent" 

例如调用:

trace("piperPaper", edit=TRUE)

返回:

function (size = NULL, ...) 
{
  new("piperplot", call = sys.call(), ...)
}

编辑:图表自定义

通过阅读文档,可以使用一些参数来自定义sizesymbolscolor。它们分别是:cexpt.pchpt.col

从下面的例子中

library(hydrogeo)

l <- list( Ca = c(43,10,73,26,32),
           Mg = c(30,50,3,14,12),
           Cl = c(24,10,12,30,43),
           SO4 = c(24,10,12,30,43))

lp <- piper(l)
plot( lp, main="Piper-Hill Diagram of Water Quality" )

我们得到图表

  • 通过更改cex 参数,我们可以获得更大的符号

    plot( lp, main="Piper-Hill Diagram of Water Quality", cex=4)

  • 通过更改pt.pch 参数我们可以选择其他符号。可用的符号是

因此声明:

lp@pt.pch = c(4,4,4,4,4)

我们获得

  • 通过更改pt.col 参数我们可以设置颜色

    lp@pt.col = c(2,2,2,2,2)

【讨论】:

  • 在这个特定的包中,我想自定义更改线型和多边形颜色的图。但是,在调用 trace("PACKAGE", edit=TRUE) 中的任何包时,我没有得到可以进行编辑的特定代码行。有什么方法可以编辑包的特定行。
  • 直接在线程中回答以添加图表。给它一个检查;)
  • 感谢您的努力,但在这里,我需要更改线型,减小线宽,增加网格线的数量,并增加轴上刻度标签的大小。
  • 我明白了.. 对于那些自定义,我想您应该与包开发人员交谈。我从 CRAN 找到了这个联系人:Myles English myles at rockhead.biz。
猜你喜欢
  • 1970-01-01
  • 2021-05-11
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
  • 2021-01-19
相关资源
最近更新 更多