是否有使用ggplot
绘制函数的基本图形中使用的curve()
命令的等效方法?我想替代方法是创建函数值的向量并绘制连接线,但我希望更简单一点。
谢谢!
答案 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格式化选项。我喜欢它。