用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")

以上就是用R語言繪制函數曲線圖的詳細內容,更多關於R語言繪制函數曲線圖的資料請關註WalkonNet其它相關文章!

推薦閱讀: