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

求助:用R绘制任意函数曲线下区间面积的矩形覆盖图

用R绘制函数曲线并覆盖区间内的曲线下面积(以x²为例)

以下是针对需求的分步实现代码,注释会说明每一步的作用:

  1. 定义目标函数
    先定义我们要绘制的函数,这里以x²为例:
# 定义函数f(x) = x²
f <- function(x) x^2
  1. 生成绘图用的x值序列
    生成足够密集的x值,确保曲线平滑:
# 生成从-2到2的100个等距x值,用于绘制平滑曲线
x_curve <- seq(-2, 2, length.out = 100)
  1. 绘制函数曲线
    先画出基础的函数曲线:
# 绘制曲线,type="l"表示线条图,lwd设置线条粗细,添加坐标轴标签和标题
plot(x_curve, f(x_curve), type = "l", lwd = 2, 
     xlab = "x", ylab = "f(x) = x²", main = "函数x²的曲线与区间[0,2]下的矩形面积")
  1. 在指定区间绘制覆盖面积的矩形
    这里选择区间[0,2],将其分成10个小矩形(可调整n_rect的值改变矩形数量),以左端点的函数值作为矩形高度为例:
# 设置要覆盖的区间和矩形数量
interval_start <- 0
interval_end <- 2
n_rect <- 10  # 矩形数量

# 生成区间分割点
x_intervals <- seq(interval_start, interval_end, length.out = n_rect + 1)

# 循环绘制每个矩形
for (i in 1:n_rect) {
  # rect参数:xleft(左x)、ybottom(下y,这里取0)、xright(右x)、ytop(上y,函数在左端点的值)
  # col设置半透明蓝色,rgb最后一个值是透明度(0-1),border保留矩形边框
  rect(x_intervals[i], 0, x_intervals[i+1], f(x_intervals[i]), 
       col = rgb(0, 0, 1, 0.2), border = "black")
}

其他可选调整

  • 如果想用右端点的函数值作为矩形高度,只需把f(x_intervals[i])改成f(x_intervals[i+1])。
  • 如果想用区间中点的函数值,改成f((x_intervals[i] + x_intervals[i+1])/2)。
  • 调整n_rect的值可以改变矩形精细程度,值越大矩形越密,越接近真实的曲线下面积。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:01:07