当前位置: 首页 > news >正文

【R语言编程绘图-函数篇】

基础函数绘制

R语言可通过curve()函数直接绘制数学函数图形,无需预先生成数据点。例如绘制正弦函数:

curve(sin, from = -pi, to = pi, col = "blue", lwd = 2)

自定义函数绘制

对于用户自定义函数,需先定义函数表达式:

my_function <- function(x) x^2 + 2*x + 1
curve(my_function, from = -5, to 5, n = 1000)

多函数叠加绘制

使用add = TRUE参数可在同一图形上叠加多个函数:

curve(sin, -pi, pi, col = "red")
curve(cos, -pi, pi, col = "blue", add = TRUE)

参数化函数绘制

处理含参数的函数时,可通过匿名函数传递参数:

a <- 2
curve(function(x) a*sin(x), 0, 2*pi)

离散点绘制法

对于无法用表达式表示的函数,可生成离散点后绘图:

x <- seq(-3, 3, length.out = 100)
y <- dnorm(x)  # 标准正态分布密度函数
plot(x, y, type = "l")

图形定制技巧

通过图形参数增强可视化效果:

curve(exp, -2, 2, main = "Exponential Function",xlab = "Input", ylab = "Output",col = "darkgreen", lty = 2)
grid()  # 添加网格线

特殊函数绘制

统计分布函数可直接调用:

curve(dnorm, -3, 3)  # 正态分布密度
curve(pnorm, -3, 3)  # 正态分布累积概率

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 设置随机种子
set.seed(123)# 定义x值范围
x <- seq(-10, 10, length.out = 200)# 设置图形布局为3行4列
par(mfrow = c(2, 2), mar = c(4, 4, 2, 2))  # 调整边距# 1. 线性函数
y1 <- 2 + 0.5 * x
plot(x, y1, type = "l", col = "blue", lwd = 2, main = "Linear Function", xlab = "x", ylab = "y")# 2. 多项式函数
y2 <- 2 + 0.5 * x + 0.1 * x^2
plot(x, y2, type = "l", col = "red", lwd = 2, main = "Polynomial Function", xlab = "x", ylab = "y")# 3. 指数函数
y3 <- 2 * exp(0.3 * x)
plot(x, y3, type = "l", col = "green", lwd = 2, main = "Exponential Function", xlab = "x", ylab = "y")# 4. 对数函数
y4 <- 2 + 0.5 * log(abs(x) + 1)  # 避免对负数取对数
plot(x, y4, type = "l", col = "purple", lwd = 2, main = "Logarithmic Function", xlab = "x", ylab = "y")# 设置图形布局为3行4列
par(mfrow = c(2, 2), mar = c(4, 4, 2, 2))  # 调整边距# 5. 幂函数
y5 <- 2 * x^0.5
plot(x, y5, type = "l", col = "orange", lwd = 2, main = "Power Function", xlab = "x", ylab = "y")# 6. 逻辑函数
y6 <- 1 / (1 + exp(-(2 + 0.5 * x)))
plot(x, y6, type = "l", col = "brown", lwd = 2, main = "Logistic Function", xlab = "x", ylab = "y")# 7. 正弦函数
y7 <- 2 * sin(0.5 * x + 1)
plot(x, y7, type = "l", col = "pink", lwd = 2, main = "Sine Function", xlab = "x", ylab = "y")# 8. 余弦函数
y8 <- 2 * cos(0.5 * x + 1)
plot(x, y8, type = "l", col = "cyan", lwd = 2, main = "Cosine Function", xlab = "x", ylab = "y")# 设置图形布局为3行4列
par(mfrow = c(2, 2), mar = c(4, 4, 2, 2))  # 调整边距# 9. 高斯函数
y9 <- 2 * exp(-((x - 0)^2) / (2 * 1^2))
plot(x, y9, type = "l", col = "magenta", lwd = 2, main = "Gaussian Function", xlab = "x", ylab = "y")# 10. 双曲函数
y10 <- 2 * tanh(0.5 * x + 1)
plot(x, y10, type = "l", col = "gray", lwd = 2, main = "Hyperbolic Function", xlab = "x", ylab = "y")# 11. 双指数函数y11 <- 2 * exp(-0.5 * abs(x))
plot(x, y11, type = "l", col = "gray", lwd = 2, main = "Hyperbolic Function", xlab = "x", ylab = "y")# 12. 三次多项式函数y12 <- 2 + 0.5 * x + 0.1 * x^2 + 0.01 * x^3
plot(x, y12, type = "l", col = "gray", lwd = 2, main = "Hyperbolic Function", xlab = "x", ylab = "y")

相关文章:

  • 商城图片性能优化实战:懒加载与下一代格式的化学反应
  • 【Webtrees 用户手册】第 3 章 -会员指南
  • OpenSSL 与 C++ 搭建一个支持 TLS 1.3 的服务器
  • 迭代器和生成器
  • 【Linux】网络--传输层--TCP协议基础
  • Sparse VideoGen开源:完全无损,视频生成速度加速两倍,支持Wan 2.1、HunyuanVideo等
  • HarmonyOS NEXT~鸿蒙操作系统功耗优化特性深度解析
  • 【HarmonyOS 5应用架构详解】深入理解应用程序包与多Module设计机制
  • 5.26 面经整理 360共有云 golang
  • 鸿蒙OSUniApp 制作悬浮按钮与菜单组件#三方框架 #Uniapp
  • 鸿蒙OSUniApp 实现的日期选择器与时间选择器组件#三方框架 #Uniapp
  • 关于vue结合elementUI输入框回车刷新问题
  • 视频检测AI智能分析网关V4摄像头异常位移检测算法全场景智能防护方案
  • 分布式爬虫架构设计
  • window 显示驱动开发-呈现开销改进(二)
  • [IMX] 08.RTC 时钟
  • 大模型RL方向面试题90道
  • 第九届水动力学与能源电力系统国际学术会议(HEEPS 2025)
  • 告别延迟!modbus tcp转profine网关助力改造电厂改造升级
  • LeetCode#第58题:最后一个单词的长度
  • 营销型企业网站包括哪些类型/seo网站关键词排名快速
  • 天猫店铺转让/电脑系统优化软件哪个好用
  • 网站程序开发教程/营业推广策略
  • 外贸做包装袋哪个网站好/百度识图在线
  • 书画艺术网站建设概况/线上推广哪个平台最好
  • 搜索引擎作弊网站有哪些/国外网站开发