在前面的小节中,我们已经学会了如何创建散点图和折线图。此外,还有其他几种类

型的图形比较有用,在这里值得一提。柱状图是其中最常用的一种。柱状图中柱子的高度

可以用于对比不同类别的数量。

我们创建一个最简单的柱状图,如图7-20所示。这里,使用barplot( )而不是plot( ):

barplot(1:10, names.arg = LETTERS[1:10])

创建柱状图_数据集


图 7-20

如果数值向量被命名了,该向量名就会自动成为 x 轴的名字。因此,以下代码将会生

成与图 7-20 相同的柱状图:

ints <- 1:10

names(ints) <- LETTERS[1:10]

barplot(ints)

柱状图的制作看起来很简单的。现在基于航班数据集 nycflights13,我们可以创建

记录中航班数最多的前 8 个航空公司的柱状图:

data("flights", package = "nycflights13")

carriers <- table(flights$carrier)

carriers

##

## 9E AA AS B6 DL EV F9 FL HA MQ

## 18460 32729 714 54635 48110 54173 685 3260 342 26397

## OO UA US VX WN YV

## 32 58665 20536 5162 12275 601

上述代码中,table( )用于计算记录中每个航空公司的航班数量。

sorted_carriers <- sort(carriers, decreasing = TRUE)

sorted_carriers

##

## UA B6 EV DL AA MQ US 9E WN VX

## 58665 54635 54173 48110 32729 26397 20536 18460 12275 5162

## FL AS F9 YV HA OO

## 3260 714 685 601 342 32

如以上代码所示,将航空公司按其航班数降序排列。我们可以取出表格中前 8 个元素,

并绘制柱状图,如图 7-21 所示。

barplot(head(sorted_carriers, 8),

ylim = c(0, max(sorted_carriers) * 1.1),

xlab = "Carrier", ylab = "Flights",

main = "Top 8 carriers with the most flights in record")

创建柱状图_柱状图_02


图 7-21