相当于ggplot的curve()

问题描述 投票:61回答:2

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

谢谢!

r ggplot2
2个回答
73
投票

您可以使用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/找到其他例子


2
投票

上面的data.frame示例运行良好,它可以生成网格线。由于给出的原因,qplot示例在ggplot2 2.2.0中不起作用。

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

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

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

相关问题
热门问答
最新问题