是否有与基础图形中使用ggplot
的curve()
命令相对应的方法来绘制函数?我想,替代方法是只创建函数值的向量并绘制一条连接的线,但是我希望有一些更简单的方法。
谢谢!
Answers:
您可以使用来添加曲线stat_function
:
ggplot(data.frame(x=c(0, 10)), aes(x)) + stat_function(fun=sin)
如果曲线函数更复杂,请使用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/中找到其他示例
在早期版本中,您可以使用qplot
,如下所示,但是现在不建议使用。
qplot(c(0,2), fun=sin, stat="function", geom="line")
data.frame
上面的示例效果很好,并且制作了网格线。qplot
由于给出的原因,该示例在ggplot2 2.2.0中不起作用。
您也可以在ggplot2 2.2.0中使用“曲线”功能,但不会自动绘制网格线或背景色。例如:
curve(cos(x), from= 0, to= pi/2).
“ ggplot(data.frame(...)方法”提供了ggplot2格式设置的全部令人印象深刻的范围。我喜欢它。
curve
是基本函数,而不是ggplot2函数。它之所以不会像网格线或背景色那样,ggplot2
是因为不是ggplot2
。
qplot(c(0,2), fun=sin, stat="function", geom="line")
,stat
现在已于2016年弃用,fun
不再是可接受的参数。