在同一图中绘制多个函数曲线

Bra*_*ani 26 plot r

绘制与给定函数对应的曲线的方法是:

fun1 <- function(x) sin(cos(x)*exp(-x/2))
plot (fun1, -8, 5)
Run Code Online (Sandbox Code Playgroud)

如何在同一个图中添加另一个函数的曲线(例如fun2,也由其数学公式定义)?

mbq*_*mbq 26

使用matplot:

fun1<-function(x) sin(cos(x)*exp(-x/2))
fun2<-function(x) sin(cos(x)*exp(-x/4))
x<-seq(0,2*pi,0.01)
matplot(x,cbind(fun1(x),fun2(x)),type="l",col=c("blue","red"))
Run Code Online (Sandbox Code Playgroud)

  • matplot是最好的答案,因为如果你开始添加曲线,你最终可能会离开当前的情节区域.matplot为您排序,并确保两个功能都在视野中. (6认同)
  • @Spacedman:如果你事先不知道这些功能怎么办?:) (2认同)

Mar*_*rek 26

plot (fun2, -8, 5, add=TRUE)
Run Code Online (Sandbox Code Playgroud)

查看帮助页面curve.

  • 请注意,你不能总是使用`add`参数:它在这里工作,因为你传递一个函数来绘图,但是如果你写,例如,'plot(x,y,add = TRUE)`你将得到一个警告`add`不是图形参数. (9认同)
  • @nico是的.这是非常特殊的情况导致`plot`用于函数调用`curve`.这就是为什么总是使用`curve`来绘制函数. (3认同)

nic*_*ico 8

使用该points功能.它具有与之相同的语法plot.

所以,例如:

fun1 <- function(x) sin(cos(x)*exp(-x/2))

x <- seq(0, 2*pi, 0.01)
plot (x, fun1(x), type="l", col="blue", ylim=c(-0.8, 0.8))
points (x, -fun1(x), type="l", col="red")
Run Code Online (Sandbox Code Playgroud)

请注意,绘图参数,如ylim,xlim标题等仅在第一次plot调用时使用.

  • 直接怎么样:) (2认同)

Bra*_*sen 6

使用par()

fun1 <- function(x) sin(cos(x)*exp(-x/2))
fun2 <- function(x) sin(cos(x)*exp(-x/4))

plot(fun1, -8,5)
par(new=TRUE)
plot(fun2, -8,5)
Run Code Online (Sandbox Code Playgroud)