当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。