21
2020
08

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')


接下来我们使用 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")

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。