R 绘图 - 函数曲线图
函数曲线图是研究函数的重要工具。R 中 curve() 函数可以绘制函数的图像,代码格式如下:
curve(expr, from = NULL, to = NULL, n = 101, add = FALSE, type = "l", xname = "x", xlab = xname, ylab = NULL, log = NULL, xlim = NULL, …)# S3 函数的方法plot(x, y = 0, to = 1, from = y, xlim = NULL, ylab = NULL, …)
注:R 语言的类有 S3 类和 S4 类,S3 类用的比较广,创建简单粗糙但是灵活,而 S4 类比较精细。
参数:
- expr:函数表达式
- from 和 to:绘图的起止范围
- n:一个整数值,表示 x 取值的数量
- add:是一个逻辑值,当为 TRUE 时,表示将绘图添加到已存在的绘图中。
- type:绘图的类型,p 为点、l 为直线, o 同时绘制点和线,且线穿过点。
- xname:用于 x 轴变量的名称。
- xlim 和 ylim 表示x轴和y轴的范围。
- xlab,ylab:x 轴和 y 轴的标签名称。
plot 函数中,x 和 y 分别表示所绘图形的横坐标和纵坐标。
以下我们绘制一个 sin(x) 函数的图表:
curve(sin(x), -2 * pi, 2 * pi)
注意:任何计算机绘图工具绘制的都是模式图,它并不能保证与真的函数图像一模一样,它只是每隔一段距离取一个点,然后计算这个点的"高度"并绘制出来,为了保证曲线连续性,相邻两个点之间会有直线连接,所以在某些情况下例如 tan(x) 可能会出现错误:
在每一个 (2n+1)Pi / 2 的位置都会出现断点,但是 R 的图像将它们连接了,希望大家理解这一点。
当然,不是所有的函数都像 sin 一样支持向量处理,我们也可以手动生成一个数字序列然后用 plot 函数生成函数图像。假设函数 f 仅支持单个数值作为参数:
实例
# 定义函数 f
f = function (x) {
if (x >= 0) {
x
} else {
x ^ 2
}
}
# 生成自变量序列
x = seq(-2, 2, length=100)
# 生成因变量序列
y = rep(0, length(x))
j = 1
for (i in x) {
y[j] = f(i)
j = j + 1
}
# 绘制图像
plot(x, y, type='l')
f = function (x) {
if (x >= 0) {
x
} else {
x ^ 2
}
}
# 生成自变量序列
x = seq(-2, 2, length=100)
# 生成因变量序列
y = rep(0, length(x))
j = 1
for (i in x) {
y[j] = f(i)
j = j + 1
}
# 绘制图像
plot(x, y, type='l')
接下来我们使用 plot() 函数对向量数据进行绘图:
实例
# 向量数据
v <- c(7,12,28,3,41)
# 生成图片
png(file = "line_chart_label_colored.jpg")
# 绘图、线图颜色为红色,main 参数用于设置标题
plot(v,type = "o", col = "red", xlab = "Month", ylab = "Rain fall",
main = "Rain fall chart")
v <- c(7,12,28,3,41)
# 生成图片
png(file = "line_chart_label_colored.jpg")
# 绘图、线图颜色为红色,main 参数用于设置标题
plot(v,type = "o", col = "red", xlab = "Month", ylab = "Rain fall",
main = "Rain fall chart")