【问题标题】:R: Custom equation on ggplot. stat_function with a third variableR:ggplot 上的自定义方程。带有第三个变量的 stat_function
【发布时间】:2020-04-01 12:37:10
【问题描述】:

我正在尝试在我的 ggplot 中引入一个自定义方程。

data1989 %>% 
 ggplot(aes(x = daysAFTERFIRE, y = NDVI)) + 
 stat_function(fun= ~ (.meanNDVI)-(exp(-0.0000348*(.x)-2.17)))

如您所见,我的自定义方程式包括 yNDVI 列)和 xdaysAFTERFIRE 列),还包括第三项 meanNDVI,这是我的 tibble 上的另一列。

尝试运行我得到了这个:

Computation failed in `stat_function()`:
object '.meanNDVI' not found 

有人有办法解决这个问题吗?谢谢!

【问题讨论】:

    标签: r function ggplot2


    【解决方案1】:

    您可以在 ggplot 调用之外构建您的函数,然后可能更容易排除故障:

    将包含重复平均值的列分配给数值变量:

    meanNDVI_variable <- df$meanNDVI[1]
    

    然后在你的函数中使用它:

    f <- function(.x) (meanNDVI_variable)-(exp(-0.0000348*(.x)-2.17)))
    

    然后:

    data1989 %>% 
     ggplot(aes(x = daysAFTERFIRE, y = NDVI)) + 
     stat_function(fun= f)))
    

    【讨论】:

    • 谢谢马特!不幸的是,这并不能解决我的问题,我一直遇到同样的错误。显然它不知道在哪里寻找 meanNDVI
    • meanNDVI 在数据框中吗?您是否尝试过使用df$meanNDVI
    • 不!正如我在帖子中提到的,它是 tibble 的另一列。所以如果我写:f &lt;- function(.x) (data1989$meanNDVI)-(exp(-0.0000348*(.x)-2.17)) 按照你的建议我得到Warning messages: Warning messages: 1: In (data1989$meanNDVI) - (exp(-3.48e-05 * (.x) - 2.17)) : longer object length is not a multiple of shorter object length 2: Computation failed in stat_function(): Elements must equal the number of rows or 1
    • meanNDVI 是同一个数字,因为它是一个计算的平均值吗?如果是这样,您可以将值分配给变量,而不是数据框中的值:meanNVDI_variable &lt;- df$meanNDVI[1],然后在函数中将 meanNVDI 替换为 meanNVDI_variable
    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    相关资源
    最近更新 更多