【问题标题】:Drawing a function in R在 R 中绘制函数
【发布时间】:2016-07-31 03:10:45
【问题描述】:

我刚开始在课堂上使用 R,我正在尝试绘制这个函数:

首先,这是我定义它的尝试。

> f<-function(x)
+ if(x<0) {
+ sin(x)
+ } else if (x>=2) {
+ 4*exp(x-2)
+ } else {
+ x^2 }

鉴于我得到的结果,我认为这是正确的:

> f(1)
[1] 1
> f(0)
[1] 0
> f(-1)
[1] -0.841471
> f(2)
[1] 4
> f(3)
[1] 10.87313

所以现在我想绘制它,但我不确定哪个命令正确。我试过 plot(f,x,y) 是 x & y 任何值,例如 (-4,4) 或 (-2,3) 但 R 给了我一个警告信息。 p>

【问题讨论】:

    标签: r function plot ggplot2


    【解决方案1】:

    试试ggplotthe example at this blog

    library(ggplot2)
    
    f <- function(x)
    {
        return(ifelse(x <= 0, sin(x), ifelse(x >= 2, 4 * exp(x-2), x^2)))
    }
    
    ggplot(data.frame(x = c(-4, 4)), aes(x = x)) +
                   stat_function(fun = f)
    

    Live Example

    【讨论】:

    • 不起作用,你应该用 ifelse 向量化函数
    【解决方案2】:

    1) 试试curve,一定要先矢量化:

    fv <- Vectorize(f)
    curve(fv, -4, 4)
    

    捐赠(截图后继续):

    2) 从一开始就以矢量化方式交替定义f

    g <- function(x) ifelse(x < 0, sin(x), ifelse(x >= 2, 4 * exp(x-2), x^2))
    curve(g, -4, 4)
    

    3) 这也可以使用fvg

    x <- seq(-4, 4, .1)
    plot(x, fv(x), type = "l")
    

    【讨论】:

      猜你喜欢
      • 2012-05-14
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      • 2023-03-30
      • 2021-12-11
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      相关资源
      最近更新 更多