函數(shù)曲線圖是研究函數(shù)的重要工具。
R 中 curve() 函數(shù)可以繪制函數(shù)的圖像,代碼格式如下:
curve(expr, from = NULL, to = NULL, n = 101, add = FALSE, type = "l", xname = "x", xlab = xname, ylab = NULL, log = NULL, xlim = NULL, …) # S3 函數(shù)的方法 plot(x, y = 0, to = 1, from = y, xlim = NULL, ylab = NULL, …)
注:R 語言的類有 S3 類和 S4 類,S3 類用的比較廣,創(chuàng)建簡單粗糙但是靈活,而 S4 類比較精細。
參數(shù):
expr:函數(shù)表達式
from 和 to:繪圖的起止范圍
n:一個整數(shù)值,表示 x 取值的數(shù)量
add:是一個邏輯值,當為 TRUE 時,表示將繪圖添加到已存在的繪圖中。
type:繪圖的類型,p 為點、l 為直線, o 同時繪制點和線,且線穿過點。
xname:用于 x 軸變量的名稱。
xlim 和 ylim 表示x軸和y軸的范圍。
xlab,ylab:x 軸和 y 軸的標簽名稱。
plot 函數(shù)中,x 和 y 分別表示所繪圖形的橫坐標和縱坐標。
以下我們繪制一個 sin(x) 函數(shù)的圖表:
curve(sin(x), -2 * pi, 2 * pi)
注意:任何計算機繪圖工具繪制的都是模式圖,它并不能保證與真的函數(shù)圖像一模一樣,它只是每隔一段距離取一個點,然后計算這個點的"高度"并繪制出來,為了保證曲線連續(xù)性,相鄰兩個點之間會有直線連接,所以在某些情況下例如 tan(x) 可能會出現(xiàn)錯誤:
在每一個 (2n+1)Pi / 2 的位置都會出現(xiàn)斷點,但是 R 的圖像將它們連接了,希望大家理解這一點。
當然,不是所有的函數(shù)都像 sin 一樣支持向量處理,我們也可以手動生成一個數(shù)字序列然后用 plot 函數(shù)生成函數(shù)圖像。假設函數(shù) f 僅支持單個數(shù)值作為參數(shù):
# 定義函數(shù) 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() 函數(shù)對向量數(shù)據(jù)進行繪圖:
# 向量數(shù)據(jù) v <- c(7,12,28,3,41) # 生成圖片 png(file = "line_chart_label_colored.jpg") # 繪圖、線圖顏色為紅色,main 參數(shù)用于設置標題 plot(v,type = "o", col = "red", xlab = "Month", ylab = "Rain fall", main = "Rain fall chart")