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


R barplot 條形圖


R語言 barplot 位於 graphics 包(package)。

說明

創建帶有垂直或水平條形的條形圖。

用法

barplot(height, ...)

## Default S3 method:
barplot(height, width = 1, space = NULL,
        names.arg = NULL, legend.text = NULL, beside = FALSE,
        horiz = FALSE, density = NULL, angle = 45,
        col = NULL, border = par("fg"),
        main = NULL, sub = NULL, xlab = NULL, ylab = NULL,
        xlim = NULL, ylim = NULL, xpd = TRUE, log = "",
        axes = TRUE, axisnames = TRUE,
        cex.axis = par("cex.axis"), cex.names = par("cex.axis"),
        inside = TRUE, plot = TRUE, axis.lty = 0, offset = 0,
        add = FALSE, ann = !add && par("ann"), args.legend = NULL,
        order = c("none", "incr", "decr"),
        ...)

## S3 method for class 'formula'
barplot(formula, data, subset, na.action,
        horiz = FALSE, xlab = NULL, ylab = NULL, ...)

參數

height

說明構成繪圖的條形的向量或值矩陣。如果 height 是向量,則繪圖由一係列矩形條組成,其高度由向量中的值給出。如果 height 是矩陣,而 besideFALSE,則圖中的每個條形對應於 height 的一列,列中的值給出構成條形的堆疊 sub-bars 的高度。如果 height 是矩陣並且 besideTRUE ,則每列中的值將並置而不是堆疊。

width

條形寬度的可選向量。重新循環到繪製的條數的長度。除非指定xlim,否則指定單個值不會產生明顯效果。

space

每個條形之前留下的空間量(作為平均條形寬度的一部分)。可以以單個數字或每條一個數字的形式給出。如果 height 是矩陣並且 besideTRUE ,則 space 可以由兩個數字指定,其中第一個是同一組中柱之間的間距,第二個是組之間的間距。如果未明確給出,則如果 height 是矩陣並且 besideTRUE ,則默認為 c(0,1) ,否則默認為 0.2。

names.arg

要繪製在每個條形或一組條形下方的名稱向量。如果省略此參數,則名稱取自 heightnames 屬性(如果它是向量)或列名稱(如果它是矩陣)。

legend.text

用於構建圖例的文本向量,或指示是否應包含圖例的邏輯。僅當 height 是矩陣時才有用。在這種情況下,給定的圖例標簽應對應於 height 的行;如果 legend.text 為 true,則 height 的行名稱非空,將用作標簽。

beside

一個邏輯值。如果 FALSE ,則 height 的列被描繪為堆疊條形,如果 TRUE 則列被描繪為並列條形。

horiz

一個邏輯值。如果是 FALSE ,則垂直繪製條形,第一個條形位於左側。如果是 TRUE ,則水平繪製條形,第一個條形位於底部。

density

給出條形或條形組件的陰影線密度(以每英寸行數為單位)的向量。 NULL的默認值意味著不繪製陰影線。 density 的非正值也會抑製陰影線的繪製。

angle

條形或條形組件的陰影線的斜率,以度數形式給出(逆時針)。

col

條形或條形組件的顏色向量。默認情況下,如果 height 是向量,則使用 "grey";如果 height 是矩陣,則使用伽馬校正灰色調色板;請參閱grey.colors

border

用於條形邊框的顏色。使用border = NA 省略邊框。如果有陰影線,border = TRUE 表示邊框使用與陰影線相同的顏色。

main,sub

情節的主標題和副標題。

xlab

x 軸的標簽。

ylab

y 軸的標簽。

xlim

x 軸的限製。

ylim

y 軸的限製。

xpd

合乎邏輯的。是否應該允許酒吧走出地區?

log

指定軸刻度是否應為對數的字符串;請參閱plot.default

axes

合乎邏輯的。如果 TRUE ,則繪製垂直(或水平,如果 horiz 為 true)軸。

axisnames

合乎邏輯的。如果 TRUE ,並且存在 names.arg (見上文),則繪製另一個軸(使用 lty = 0 )並進行標記。

cex.axis

數字軸標簽的擴展因子(請參閱par('cex'))。

cex.names

軸名稱(條形標簽)的擴展因子。

inside

合乎邏輯的。如果是 TRUE ,則會繪製分隔相鄰(非堆疊!)條形的線。僅適用於 space = 0 時(部分適用於 beside = TRUE 時)。

plot

合乎邏輯的。如果 FALSE ,則不會繪製任何內容。

axis.lty

圖形參數 lty (請參閱 par('lty') )應用於分類(默認水平)軸的軸和刻度線。請注意,默認情況下該軸被抑製。

offset

一個向量,指示條形相對於 x 軸應移動多少。

add

邏輯指定是否應將條形圖添加到已存在的圖中;默認為 FALSE

ann

邏輯指定默認注釋( mainsubxlabylab )是否應出現在繪圖上,請參閱 title

args.legend

要傳遞給 legend() 的附加參數列表;列表的名稱用作參數名稱。僅在提供legend.text 時使用。

formula

一個公式,其中 y 變量是數值數據,用於針對分類 x 變量進行繪圖。該公式可以采用以下三種形式之一:

      y ~ x
      y ~ x1 + x2
      cbind(y1, y2) ~ x
    

(參見示例)。

data

應從中獲取公式中變量的 DataFrame (或列表)。

subset

一個可選向量,指定要使用的觀測子集。

na.action

一個函數,指示當數據包含 NA 值時應該發生什麽。默認設置是忽略給定變量中的缺失值。

...

要傳遞給其他方法或從其他方法傳遞的參數。對於默認方法,這些可以包括傳遞給 plot.window()title()axis 的其他參數(例如 axesaspmain )和 graphical parameters (參見 par )。

一個數字向量(或矩陣,當 beside = TRUE 時),例如 mp ,給出繪製的所有條形中點的坐標,對於添加到圖形中很有用。

如果 beside 為 true,則使用 colMeans(mp) 作為每組柱的中點,請參閱示例。

例子

# Formula method
barplot(GNP ~ Year, data = longley)
barplot(cbind(Employed, Unemployed) ~ Year, data = longley)

## 3rd form of formula - 2 categories :
op <- par(mfrow = 2:1, mgp = c(3,1,0)/2, mar = .1+c(3,3:1))
summary(d.Titanic <- as.data.frame(Titanic))
barplot(Freq ~ Class + Survived, data = d.Titanic,
        subset = Age == "Adult" & Sex == "Male",
        main = "barplot(Freq ~ Class + Survived, *)", ylab = "# {passengers}", legend.text = TRUE)
# Corresponding table :
(xt <- xtabs(Freq ~ Survived + Class + Sex, d.Titanic, subset = Age=="Adult"))
# Alternatively, a mosaic plot :
mosaicplot(xt[,,"Male"], main = "mosaicplot(Freq ~ Class + Survived, *)", color=TRUE)
par(op)


# Default method
require(grDevices) # for colours
tN <- table(Ni <- stats::rpois(100, lambda = 5))
r <- barplot(tN, col = rainbow(20))
#- type = "h" plotting *is* 'bar'plot
lines(r, tN, type = "h", col = "red", lwd = 2)

barplot(tN, space = 1.5, axisnames = FALSE,
        sub = "barplot(..., space= 1.5, axisnames = FALSE)")

barplot(VADeaths, plot = FALSE)
barplot(VADeaths, plot = FALSE, beside = TRUE)

mp <- barplot(VADeaths) # default
tot <- colMeans(VADeaths)
text(mp, tot + 3, format(tot), xpd = TRUE, col = "blue")
barplot(VADeaths, beside = TRUE,
        col = c("lightblue", "mistyrose", "lightcyan",
                "lavender", "cornsilk"),
        legend.text = rownames(VADeaths), ylim = c(0, 100))
title(main = "Death Rates in Virginia", font.main = 4)

hh <- t(VADeaths)[, 5:1]
mybarcol <- "gray20"
mp <- barplot(hh, beside = TRUE,
        col = c("lightblue", "mistyrose",
                "lightcyan", "lavender"),
        legend.text = colnames(VADeaths), ylim = c(0,100),
        main = "Death Rates in Virginia", font.main = 4,
        sub = "Faked upper 2*sigma error bars", col.sub = mybarcol,
        cex.names = 1.5)
segments(mp, hh, mp, hh + 2*sqrt(1000*hh/100), col = mybarcol, lwd = 1.5)
stopifnot(dim(mp) == dim(hh))  # corresponding matrices
mtext(side = 1, at = colMeans(mp), line = -2,
      text = paste("Mean", formatC(colMeans(hh))), col = "red")

# Bar shading example
barplot(VADeaths, angle = 15+10*1:5, density = 20, col = "black",
        legend.text = rownames(VADeaths))
title(main = list("Death Rates in Virginia", font = 4))

# Border color
barplot(VADeaths, border = "dark blue") 


# Log scales (not much sense here)
barplot(tN, col = heat.colors(12), log = "y")
barplot(tN, col = gray.colors(20), log = "xy")

# Legend location
barplot(height = cbind(x = c(465, 91) / 465 * 100,
                       y = c(840, 200) / 840 * 100,
                       z = c(37, 17) / 37 * 100),
        beside = FALSE,
        width = c(465, 840, 37),
        col = c(1, 2),
        legend.text = c("A", "B"),
        args.legend = list(x = "topleft"))

作者

R Core, with a contribution by Arni Magnusson.

參考

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

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

也可以看看

plot(..., type = "h")dotcharthist 用於連續變量的柱。 mosaicplot() ,更複雜地可視化多個分類變量。

相關用法


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