您好,这是一段关于绘制简单曲线的选择问题,特别是针对函数如何绘制曲线的问题。
eq = function(x){x*x}
在R中如何绘制函数?
这似乎是一个很明显的问题,但我只能在stackoverflow上找到这些相关问题,但它们都更具体。
我希望我没有写重复的问题。
您好,这是一段关于绘制简单曲线的选择问题,特别是针对函数如何绘制曲线的问题。
eq = function(x){x*x}
在R中如何绘制函数?
这似乎是一个很明显的问题,但我只能在stackoverflow上找到这些相关问题,但它们都更具体。
我希望我没有写重复的问题。
我在网上进行了一些搜索,找到了以下几种方法:
最简单的方法是使用没有预定义函数的曲线。
curve(x^2, from=1, to=50, , xlab="x", ylab="y")
当你有预定义的函数时,你也可以使用曲线。
eq = function(x){x*x}
curve(eq, from=1, to=50, xlab="x", ylab="y")
如果你想使用ggplot,
library("ggplot2")
eq = function(x){x*x}
ggplot(data.frame(x=c(1, 50)), aes(x=x)) +
stat_function(fun=eq)
你是指像这样吗?
> eq = function(x){x*x}
> plot(eq(1:1000), type='l')
(或者根据您的函数绘制相应范围的值)
plot
具有plot.function
方法。
plot(eq, 1, 1000)
或者
curve(eq, 1, 1000)
plot(eq, 1, 1000)
。我也看到了 curve(eq, 1, 100)
的例子。它们有什么区别吗? - sjdhplot.function
实际上是在做一些参数检查后调用 curve
函数。此外,curve
函数可以接受表达式作为输入,但 plot
函数需要一个函数作为输入来调用 plot.function
。 - GSeelibrary(lattice)
eq<-function(x) {x*x}
X<-1:1000
xyplot(eq(X)~X,type="l")
library(ggplot2)
eq <- function(x){sin(x)}
base <- ggplot() + xlim(0, 30)
base + geom_function(fun=eq)
base + geom_function(fun=eq, n=10000)
我需要的额外设置的Lattice解决方案:
library(lattice)
distribution<-function(x) {2^(-x*2)}
X<-seq(0,10,0.00001)
xyplot(distribution(X)~X,type="l", col = rgb(red = 255, green = 90, blue = 0, maxColorValue = 255), cex.lab = 3.5, cex.axis = 3.5, lwd=2 )
X<-seq(0,10,0.00001)
col = rgb(red = 255, green = 90, blue = 0, maxColorValue = 255)
lwd = 2
cex.lab = 3.5, cex.axis = 3.5
我有一个涉及三个参数(a、b和h)的函数(emax()
),我想绘制它的线:
emax = function(x, a, b, h){
(a * x^h)/(b + x^h)
}
curve(emax, from = 1, to = 40, n=40 a = 1, b = 2, h = 3)
出现错误:Error in emax(x) : argument "a" is missing, with no default error
。
通过使用以下语法将命名参数放在函数内部来解决此问题:
curve(emax(x, a = 1, b = 2, h = 3), from = 1, to = 40, n = 40)
这与文档中写的curve(expr, from, to, n, ...)相反,而不是curve(expr(x,...), from, to, n)。
?curve
。在此,文档甚至指定对于绘图的“函数”方法,...可以包括curve的任何其他参数,除了expr.
-这使得它相当清楚它与表达式无关。我认为在这种情况下该文档非常清楚。 - tjebo...
添加额外参数(例如,lapply)的情况。然而,这只是它们设计的一种方式,而 ...
在每种情况下都扮演着不同的角色,具体取决于底层函数的设计。此外,方法通常是函数的特殊情况,有时甚至可以包含没有任何意义的 ...
。因此,如果你不确定 ...
在该函数中的作用,最好避免盲目使用。 - tjebo