《R数据可视化手册》——3.1 绘制简单条形图

本节书摘来异步社区《R数据可视化手册》一书中的第3章,第3.1节,作者:【美】Winston Chang,更多章节内容可以访问云栖社区“异步社区”公众号查看。

3.1 绘制简单条形图

问题
你有一个包含了两列数据的数据框,其中一列数据表示条形在x轴上的位置,另一列表示每个条形在y轴上对应的高度,基于此,如何绘制条形图?

方法
使用ggplot()函数和geom_bar(stat="identity")绘制上述条形图,并分别指定与x轴和y轴对应的变量(见图3-1)。

library(gcookbook) #为了使用数据
ggplot(pg_mean, aes(x=group, y=weight)) + geom_bar(stat="identity")

《R数据可视化手册》——3.1 绘制简单条形图

讨论
当x是连续型(数值型)变量时,条形图的结果与上图会略有不同。此时,ggplot不是只在实际取值处绘制条形,而将在x轴上介于最大值和最小值之间所有可能的取值处绘制条形,如图3-2所示。我们可以使用factor()函数将连续型变量转化为离散型变量。

# 没有Time == 6的输入
BOD

 Time demand
   1  8.3
   2  10.3
   3  19.0
   4  16.0
   5  15.6
   7  19.8

# Time是数值型(连续型)变量
str(BOD)

'data.frame': 6 obs. of 2 variables:
 $ Time : num 1 2 3 4 5 7
 $ demand: num 8.3 10.3 19 16 15.6 19.8
 - attr(*, "reference")= chr "A1.4, p. 270"

ggplot(BOD, aes(x=Time, y=demand)) + geom_bar(stat="identity")

# 使用factor()函数将Time转化为离散型(分类)变量
ggplot(BOD, aes(x=factor(Time), y=demand)) + geom_bar(stat="identity")

《R数据可视化手册》——3.1 绘制简单条形图

图3-2 左图:针对变量值绘制的条形图(参数stat="identity"),x轴对应的是连续型变量  右图:将x转化为因子型变量之后绘制的条形图(注意此处缺失了取值为6的条形)

本例中,数据集中包含两列分别对应于x和y变量。如果你想让条形图的高度与每组变量的频数相对应,可参见3.3节的内容。

默认设置下,条形图的填充色为黑灰色且条形图没有边框线,我们可通过调整fill参数的值来改变条形图的填充色;可通过colour参数为条形图添加边框线。在图3-3中,我们将填充色和边框线分别指定为浅蓝色和黑色。

《R数据可视化手册》——3.1 绘制简单条形图
ggplot(pg_mean, aes(x=group, y=weight)) +
  geom_bar(stat="identity", fill="lightblue", colour="black")

在ggplot2中,颜色参数默认使用的是英式拼写colour,而非美式拼写color。然而,ggplot2会在底层将美式拼写重映射为英式拼写,因此输入美式拼写的参数并不影响函数的运行。
另见
如果你想让条形图的高度对应于每组变量的频数,可参见3.3节的内容。

根据另一个变量值重排因子水平顺序的内容可参见15.9节。手动更改因子水平顺序的内容,可参见15.8节。

更多关于图形着色的内容,可参见本书第12章。

上一篇:IDC最新数据启示:客户拥抱最大的云计算 告别DIY时代


下一篇:开源代码及Linux在云计算中的应用