繁体   English   中英

在R中绘制连续函数

[英]Plot a continuous function in R

我如何在R中绘制y = a*b类的东西,其中y等于某个常数, a,b > 0

所以a*b=5例如。 它绘制那条线的地方。

我只见过传递ab的值列表并从这些值中绘制y ,而不是绘制连续曲线。

f <- function(a,b) {a*b}

如何在R中执行以下操作?

f <- function(a,b) {a*b = 5}

这称为参数图。 如果你不能或不想用x求解y(在这种情况下y = 5 / x),你可以计算网格上的值并让R绘制相关的轮廓线。 emdbook包中的curve3d函数为此任务提供了方便的包装器。

library(emdbook)
curve3d(x*y,sys3d="contour",levels=5,
        xlim=c(0,5),ylim=c(0,5))
curve(5/x,col=2,add=TRUE)

但实际上在基地R中也不难做到:

xvec <- seq(0,5,length=51)
yvec <- seq(0,5,length=51)
z <- outer(xvec,yvec,"*") ## "*" is default but you could specify
                          ## any other _vectorized_ function of two
                          ## arguments ...
contour(xvec,yvec,z,levels=5)

如果你的函数没有在x和y中矢量化,你可以(1)使用?Vectorize使它矢量化; (2)在你的x和y向量上使用expand.gridapply你的函数,并将结果向量折叠回矩阵; (3)使用嵌套for循环; 或者(4)放弃并使用emdbook::curve3d (这就是它的用途)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM