本节书摘来异步社区《R数据可视化手册》一书中的第2章,第2.6节,作者:【美】Winston Chang,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.6 绘制函数图像
问题
如何绘制函数图像?
方法
可以使用curve()函数绘制函数图像,如图2-12左图所示。使用时需向其传递一个关于变量x的表达式:
curve(x^3 - 5*x, from=-4, to=4)```
你可以绘制任何一个以数值型向量作为输入且以数值型向量作为输出的函数图像,包括你自己定义的函数,如图2-12右图所示。
<div style="text-align: center"><img src="https://yqfile.alicdn.com/ea11080664df48790fa44ba82fe70bc07e89adae.png" width="" height="">
</div>
将参数设置为add=TRUE可以向已有图形添加函数图像:
绘制用户自定义的函数图像
myfun <- function(xvar) {
1/(1 + exp(-xvar + 10))
}
curve(myfun(x), from=0, to=20)
添加直线
curve(1-myfun(x), add = TRUE, col ="red")
对于ggplot2,可以使用qplot()函数绘制得到同样的结果(见图2-13)。使用时需设定stat="function"和geom="line",并向其传递一个输入和输出皆为数值型向量的函数:
library(ggplot2)
将x轴的取值范围设定为0到20
qplot(c(0, 20), fun=myfun, stat="function", geom="line")
这等价于
ggplot(data.frame(x=c(0, 20)), aes(x=x)) + stat_function(fun=myfun, geom="line")
<div style="text-align: center"><img src="https://yqfile.alicdn.com/1e9fa136d3c04a52b73eea3043f4fcd05bfff68e.png" width="" height="">
</div>
另见