首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个命令中绘制变化点曲线

在一个命令中绘制变化点曲线
EN

Stack Overflow用户
提问于 2013-01-15 23:19:11
回答 2查看 118关注 0票数 0

我想绘制一条在x=5处有变化点的曲线

到现在为止,我使用的是代码

代码语言:javascript
复制
curve(exp(0.68+0.92*x), from=0,to=5, xlim=c(0,12), ylim=c(0,500))
curve(exp(0.68+0.92*x-0.7*(x-5)), from=5,to=12, add=T)

可以在一行(一个curve命令)中编写它吗?我在想

像这样的东西

代码语言:javascript
复制
curve(exp(0.47+0.8*x-0.7*(x-5)*if(x<5,0,1)), from=0,to=12, xlim=c(0,12), ylim=c(0,500))

但它对R不起作用

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-15 23:23:57

使用ifelse,您可以创建一个数据系列:

代码语言:javascript
复制
values = ifelse(x <= 5, exp(0.68+0.92*x), exp(0.68+0.92*x-0.7*(x-5))

并将它们绘制出来:

代码语言:javascript
复制
curve(values)

如果您坚持使用一行程序,那么可以将ifelse和对curve的调用结合起来

代码语言:javascript
复制
curve(ifelse(x <= 5, exp(0.68+0.92*x), exp(0.68+0.92*x-0.7*(x-5)))

虽然将代码分成两行可以更容易地阅读。

票数 4
EN

Stack Overflow用户

发布于 2013-01-15 23:23:49

您可以只编写一个函数来绘制这两条曲线:

代码语言:javascript
复制
myfun <- function(...) {
 plot(...)
 lines(...)
}

当然,你必须给出正确的论点。结果是一张图中有两条曲线

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14340853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档