2017-05-07 64 views
0

通过给某些输入参数一个值,在二维图中绘制多个变量函数的最简单方法是什么?让我们考虑一个简单的例子如何通过初始化所有变量而在R中绘制多个变量的函数

my.function<-function(a,b,x){a*x^2+b}

现在我要绘制的简单的抛物线,其中a=1一个b=0。所以我定义了一个新功能: new.function<-function(x){my.function(1,0,x)}; plot(new.function)

有没有什么办法可以在没有定义new.function的情况下绘制函数?

通常我用数学和数学中这将是:

Plot[my.function[1,0,x],{x ... }]

+2

基本上在R上的相同'情节的人的最好方法(函数(X){my.function(1,0,X)})' – G5W

+2

或者你可以像曲线一样使用'curve(my.function(1,0,x),from = 0,to = 10)' 。 – lmo

回答

1

你不应该需要定义一个新的功能。您可以使用原有的功能,my.function,以及1至10中的x值传递给绘制抛物线:

my.function <- function(a,b,x){a*x^2+b} 
x <- 1:10 
y <- my.function(a=1,b=0,x=x) 
plot(y~x) 
+1

该函数是矢量化的,所以不需要'sapply'。 'y < - my.function(a = 1,b = 0,x = 1:10)'工作正常。 – Gregor

+0

感谢您指出。我编辑了我的帖子。没有'sapply()'就简单多了。 –

0

对于未来的读者,我分享@ G5W的批评是对的答案在这里:

plot(function(x) { my.function(1,0,x) })

我相信这是在这里提供