當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R plot.default 默認散點圖函數


R語言 plot.default 位於 graphics 包(package)。

說明

在活動圖形窗口中繪製帶有軸和標題等裝飾的散點圖。

用法

## Default S3 method:
plot(x, y = NULL, type = "p",  xlim = NULL, ylim = NULL,
     log = "", main = NULL, sub = NULL, xlab = NULL, ylab = NULL,
     ann = par("ann"), axes = TRUE, frame.plot = axes,
     panel.first = NULL, panel.last = NULL, asp = NA,
     xgap.axis = NA, ygap.axis = NA,
     ...)

參數

x, y

xy 參數提供繪圖的 x 和 y 坐標。定義坐標的任何合理方式都是可以接受的。詳細信息請參見函數xy.coords。如果單獨提供,它們的長度必須相同。

type

1 個字符的字符串,給出所需的繪圖類型。可以使用以下值,詳細信息請參見plot"p" 表示點,"l" 表示線,"b" 表示點和線,"c" 表示由線連接的空點,"o" 表示重疊繪製點和線,"s""S" 表示樓梯台階,"h" 表示histogram-like 垂直線。最後,"n" 不會產生任何點或線。

xlim

繪圖的 x 限製 (x1, x2)。請注意,x1 > x2 是允許的,並且會導致“反轉軸”。

默認值 NULL 表示應使用要繪製的 finite 值的範圍。

ylim

繪圖的 y 範圍。

log

如果 x 軸為對數,則包含 "x";如果 y 軸為對數,則包含 "y";如果兩個軸都為對數,則包含 "xy""yx"

main

繪圖的主標題,另請參閱 title

sub

情節的副標題。

xlab

x 軸的標簽,默認為 x 的說明。

ylab

y 軸的標簽,默認為 y 的說明。

ann

一個邏輯值,指示默認注釋(標題以及 x 和 y 軸標簽)是否應出現在繪圖上。

axes

一個邏輯值,指示是否應在繪圖上繪製兩個軸。使用graphical parameter "xaxt""yaxt" 僅抑製其中一個軸。

frame.plot

指示是否應在圖周圍繪製方框的邏輯。

panel.first

在設置繪圖軸之後但在進行任何繪圖之前要評估的 ‘expression’。這對於繪製背景網格或散點圖平滑很有用。請注意,這是通過惰性求值實現的:從其他 plot 方法傳遞此參數很可能不起作用,因為它可能求值得太早。

panel.last

在繪圖後但在添加軸、標題和框之前要計算的表達式。請參閱有關 panel.first 的評論。

asp

寬高比,請參閱 plot.window

xgap.axis, ygap.axis

軸間隙係數,作為 gap.axis 傳遞給兩個 axis() 調用(默認情況下,當 axes 為 true 時)。

...

其他graphical parameters(參見par和下麵的“詳細信息”部分)。

細節

常用的graphical parameters有:

col

線和點的顏色。可以指定多種顏色,以便每個點都可以指定自己的顏色。如果顏色少於點數,則它們會以標準方式回收。線條將全部以指定的第一種顏色繪製。

bg

開放繪圖符號的背景顏色向量,請參閱 points 。注意:這與 par("bg") 的設置不同。

pch

繪製字符或符號的向量:請參閱points

cex

一個數值向量,給出繪製字符和符號相對於默認值應縮放的量。這是 par("cex") 的倍數。 NULLNA 相當於 1.0 。請注意,這不會影響注釋:見下文。

lty

線型向量,請參閱par

cex.maincol.labfont.sub

主副標題和軸注釋的設置,請參見 titlepar

lwd

線寬向量,請參閱par

注意

panel.firstpanel.last 的存在是一個曆史異常:默認圖沒有 ‘panels’,與例如pairs 繪圖。如需更多控製,請使用 lower-level 繪圖函數: plot.default 依次調用 plot.newplot.windowplot.xyaxisboxtitle ,並且可以通過以下方式構建繪圖單獨調用它們,或者通過調用 plot(type = "n") 並添加更多元素。

plot通用已從graphics包到base封裝在R4.0.0。目前已從graphics命名空間允許從那裏導入它的包繼續工作,但這可能會在未來版本中改變R.

例子

Speed <- cars$speed
Distance <- cars$dist
plot(Speed, Distance, panel.first = grid(8, 8),
     pch = 0, cex = 1.2, col = "blue")
plot(Speed, Distance,
     panel.first = lines(stats::lowess(Speed, Distance), lty = "dashed"),
     pch = 0, cex = 1.2, col = "blue")

## Show the different plot types
x <- 0:12
y <- sin(pi/5 * x)
op <- par(mfrow = c(3,3), mar = .1+ c(2,2,3,1))
for (tp in c("p","l","b",  "c","o","h",  "s","S","n")) {
   plot(y ~ x, type = tp, main = paste0("plot(*, type = \"", tp, "\")"))
   if(tp == "S") {
      lines(x, y, type = "s", col = "red", lty = 2)
      mtext("lines(*, type = \"s\", ...)", col = "red", cex = 0.8)
   }
}
par(op)

##--- Log-Log Plot  with  custom axes
lx <- seq(1, 5, length.out = 41)
yl <- expression(e^{-frac(1,2) * {log[10](x)}^2})
y <- exp(-.5*lx^2)
op <- par(mfrow = c(2,1), mar = par("mar")-c(1,0,2,0), mgp = c(2, .7, 0))
plot(10^lx, y, log = "xy", type = "l", col = "purple",
     main = "Log-Log plot", ylab = yl, xlab = "x")
plot(10^lx, y, log = "xy", type = "o", pch = ".", col = "forestgreen",
     main = "Log-Log plot with custom axes", ylab = yl, xlab = "x",
     axes = FALSE, frame.plot = TRUE)
my.at <- 10^(1:5)
axis(1, at = my.at, labels = formatC(my.at, format = "fg"))
e.y <- -5:-1 ; at.y <- 10^e.y
axis(2, at = at.y, col.axis = "red", las = 1,
     labels = as.expression(lapply(e.y, function(E) bquote(10^.(E)))))
par(op)

參考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

Cleveland, W. S. (1985) The Elements of Graphing Data. Monterey, CA: Wadsworth.

Murrell, P. (2005) R Graphics. Chapman & Hall/CRC Press.

也可以看看

plotplot.windowxy.coords。對於數千個點,請考慮使用 smoothScatter 代替。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 The Default Scatterplot Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。