在R语言中用不同标度在同一坐标系内绘制曲线 y1=3xsin(x^3) 在区间 [-2,2] 及 y2=3(x+1)cos(x^3)-|在区间[0,4]的效果图
时间: 2024-10-09 19:01:03 浏览: 34
29.R语言ggplot2——点图、折线图绘制方法教程.pdf
5星 · 资源好评率100%
在R语言中,要在一个图上用不同比例尺绘制两条曲线,你需要先明确要在哪些区间上分别绘制,然后利用`par()`函数设置坐标轴范围,接着使用`curve()`函数绘制每个函数。这里以你的例子为例:
首先,我们需要导入必要的库,比如`graphics`(如果尚未加载):
```R
if (!require(graphics)) {
library(graphics)
}
```
接下来,我们定义两个函数并指定它们的区间:
```R
x1 <- seq(from = -2, to = 2, length.out = 100) # 区间 [-2, 2] 对于 y1=3x*sin(x^3)
x2 <- seq(from = 0, to = 4, length.out = 100) # 区间 [0, 4] 对于 y2=3*(x+1)*cos(x^3) - |x|
y1 <- 3 * x1 * sin(x1^3) # y1 的计算
y2 <- 3 * (x2 + 1) * cos(x2^3) - abs(x2) # y2 的计算
```
为了在同一坐标系中展示这两条曲线,我们可以使用`par(mfrow=c(1, 2))`创建一个包含两个子图的布局,然后分别绘制:
```R
# 第一部分:y1 曲线,用较小的比例尺
par(subplot亲本坐标系, mfrow=c(1, 2), mar=c(4, 4, 2, 1)) # 调整边距
plot(x1, y1, type = "l", xlab = "X", ylab = expression(y[1] == 3*x*sin(x^3)), xlim = c(-2, 2), ylim = c(-5, 5), lwd = 2)
# 第二部分:y2 曲线,用较大的比例尺
plot(x2, y2, type = "l", xlab = "X", ylab = expression(y[2] == 3*(x+1)*cos(x^3) - abs(x)), xlim = c(0, 4), ylim = c(-5, 10), lty = 2, col = "blue", lwd = 2)
# 结合两个子图
par(mar = c(4, 4, 2, 1)) # 恢复默认边距
```
阅读全文