Plot a function with ggplot, equivalent of curve()

前端 未结 2 1603
一整个雨季
一整个雨季 2020-11-28 05:01

Is there an equivalent method for plotting functions using ggplot to the curve() command employed in base graphics? I guess that the alternative wo

相关标签:
2条回答
  • 2020-11-28 05:23

    You can add a curve using the stat_function:

    ggplot(data.frame(x=c(0, 10)), aes(x)) + stat_function(fun=sin)
    

    If your curve function is more complicated, then use a lambda function. For example,

    ggplot(data.frame(x=c(0, 10)), aes(x)) + 
      stat_function(fun=function(x) sin(x) + log(x))
    

    you can find other examples at http://kohske.wordpress.com/2010/12/25/draw-function-without-data-in-ggplot2/


    In earlier versions, you could use qplot, as below, but this is now deprecated.

    qplot(c(0,2), fun=sin, stat="function", geom="line")
    
    0 讨论(0)
  • 2020-11-28 05:24

    The data.frame example above works well, and it makes grid lines. The qplot example doesn't work in ggplot2 2.2.0 for the reasons given.

    You can also use the "curve" function in ggplot2 2.2.0, but it does not automatically make grid lines or background color. For example:

    curve(cos(x), from= 0, to= pi/2).  
    

    The "ggplot(data.frame(... ) method gives the full impressive range of ggplot2's formatting options. I like it.

    0 讨论(0)
提交回复
热议问题