相当于ggplot的curve()

时间:2011-03-03 07:25:51

标签: r ggplot2

是否有使用ggplot绘制函数的基本图形中使用的curve()命令的等效方法?我想替代方法是创建函数值的向量并绘制连接线,但我希望更简单一点。

谢谢!

2 个答案:

答案 0 :(得分:71)

您可以使用stat_function

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

也可以使用qplot,但目前尚不清楚这是否更简单:

qplot(c(0,2), fun=sin, stat="function", geom="line")

如果曲线函数更复杂,则使用lambda函数。例如,

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

你可以找到其他的例子 http://kohske.wordpress.com/2010/12/25/draw-function-without-data-in-ggplot2/

答案 1 :(得分:1)

上面的data.frame示例效果很好,它会生成网格线。由于给出的原因,qplot示例在ggplot2 2.2.0中不起作用。

您也可以在ggplot2 2.2.0中使用“曲线”功能,但它不会自动生成网格线或背景颜色。例如:

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

“ggplot(data.frame(...)方法提供了令人印象深刻的ggplot2格式化选项。我喜欢它。