如何在R中绘制函数曲线

sjd*_*jdh 64 plot r ggplot2 lattice

为函数绘制简单曲线有哪些替代方法

eq = function(x){x*x}
Run Code Online (Sandbox Code Playgroud)

在R?

这听起来是一个显而易见的问题,但我只能在stackoverflow上找到这些相关的问题,但它们都更具体

我希望我没有写一个重复的问题.

sjd*_*jdh 74

我在网上做了一些搜索,这是我找到的一些方法:

最简单的方法是使用没有预定义函数的曲线

curve(x^2, from=1, to=50, , xlab="x", ylab="y")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

您还可以在具有预定义功能时使用曲线

eq = function(x){x*x}
curve(eq, from=1, to=50, xlab="x", ylab="y")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果你想使用ggplot,你可以在qplot之间进行选择

library("ggplot2")
eq = function(x){x*x}
qplot(c(1,50), fun=eq, stat="function", geom="line", xlab="x", ylab="y")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

和ggplot

library("ggplot2")
eq = function(x){x*x}
ggplot(data.frame(x=c(1, 50)), aes(x=x)) + stat_function(fun=eq, geom="line") + xlab("x") + ylab("y")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 仅供参考,qplot示例不再起作用:为了鼓励用户使用`ggplot()`,`qplot()`函数被削弱了-例如,它不再接受`fun`参数(从v3开始)。 (2认同)

GSe*_*See 32

plot有一个plot.function方法

plot(eq, 1, 1000)
Run Code Online (Sandbox Code Playgroud)

要么

curve(eq, 1, 1000)
Run Code Online (Sandbox Code Playgroud)

  • @sjdh不多.执行一些参数检查后,`plot.function`实际上调用了`curve`.此外,`curve`可以将表达式作为输入,但是`plot`需要一个函数作为输入来调度到`plot.function` (4认同)

Eri*_*ric 29

你的意思是这样的?

> eq = function(x){x*x}
> plot(eq(1:1000), type='l')
Run Code Online (Sandbox Code Playgroud)

方程1:1000的范围

(或者与您的函数相关的任何值范围)