You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言绘图:如何绘制满足x1*x2=38条件的平滑曲线

R语言绘制x1*x2=38平滑曲线的实现方法

你可以使用R内置的curve()函数实现该需求,这是最简便的方案,无需手动生成坐标点即可生成平滑曲线。

首先对目标方程做变形:由x1*x2=38可得x2=38/x1。由于要求x1、x2均落在0到10区间内,计算可得x1的有效取值范围为3.8~10(x1=3.8时x2=10,x1=10时x2=3.8,刚好符合取值边界要求)。

完整可运行代码

# 原有基础绘图代码
plot(1, type="n", xlab="x1", ylab="x2", xlim=c(0, 10), ylim=c(0, 10), axes = F)
axis(1, seq(0,10,1), pos = 0)
axis(2, seq(0,10,1), pos = 0)
lines(x = c(0,10), y = c(10,10))
lines(x = c(10,10), y = c(0,10))

# 新增曲线绘制代码
curve(38/x, from = 3.8, to = 10, add = TRUE, lwd = 2, col = "red")

参数说明

  • 38/x:是变形后的x2关于x1的函数表达式
  • from、to:限定x1的有效绘制范围,保证计算出的x2不会超出0~10的区间
  • add = TRUE:指定在已有画布上叠加绘制,不会覆盖之前已经画好的坐标轴和边框
  • 可选参数lwd用于设置线宽,col用于设置线条颜色,方便和其他元素区分

替代方案

如果你希望手动控制坐标点精度,也可以先生成x1序列再用lines()函数绘制:

# 生成1000个连续的x1值,点越多线条越平滑
x1_seq <- seq(3.8, 10, length.out = 1000)
x2_seq <- 38 / x1_seq
lines(x1_seq, x2_seq, lwd = 2, col = "blue")

内容的提问来源于stack exchange,提问作者Emily

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 10:45:08