8.3 条形图(Bar Chart)
8.3.1 认识条形图
条形图(Bar Chart)也叫柱状图,棒形图,是最常用的数据可视化方法之一,通常采用水平或垂直条形(柱形图)来比较不同类别(在x轴上)的数值型变量的数值(在y轴上)。有时条形图的条形高度表示的是数据集变量的频数,有时则表示变量取值本身。
条形图作用:用于显示一段时间内的数据变化或显示各项之间的比较情况。类别型或序 数型变量映射到横轴的位置,数值型变量映射到矩形的高度。
常见类型:单数据系列柱形图、多数据系列柱形图、堆积柱形图、百分比堆积柱形图。
8.3.2 绘制条形图
ggplot中绘制条形图是使用geom_bar()函数,其中的position的参数有4种。
(1)identity:不做任何位置调整,该情况在多分类柱形图中不可行,序列间会遮盖,但是在多序列散点图、折线图中即可行,不存在遮盖问题;
(2)stack:垂直堆叠放置(堆积柱形图);
(3)dodge:水平抖动放置(簇状柱形图,position=position_dodge());
(4)fill:百分比化(垂直堆叠放置,如百分比堆积面积图、百分比堆积柱形图等)。
1、单数据系列条形图
条形图X轴变量一般为类别型和序数型,Y轴变量为数值型。R的 ggplot2包绘制柱形图时,X轴变量默认会按照输入的数据顺序绘制,Y轴变量和图例变量默认按照字母顺序绘制。
data3 <- tibble(Ax = c(1:5, 8), By = 6:11, cg = rep(c("a", "b"), each = 3)) # 创建数据集data3。
ggplot(data3, aes(x = Ax, y = By)) + geom_bar(stat = "identity") # 序数型x轴条形图。
ggplot(data3, aes(x = factor(Ax), y = By)) + geom_bar(stat = "identity") # 类别型x轴条形图。
注:前一幅图x为序数型,后一幅图x为类别型
2、多数据系列条形图将分类变量映射到fill参数,并运行geom_bar(position = “dodge”),注意,映射填充色的变量必须为分类变量。
data1 %>%
ggplot(aes(x = nitrogen, y = v1, fill = variety)) + geom_bar(stat = "identity", width = 0.4, position = position_dodge(width = 0.7)) # 簇状条形图。
3、堆积条形图堆积条形图显示单个项目与整体之间的关系,它比较各个类别的每个数值所占总数值的大小。堆积柱形图以二维垂直堆积矩形显示数值。
data1 %>%
ggplot(aes(x = nitrogen, y = v1, fill = variety)) + geom_bar(stat = "identity", width = 0.4, position = "stack") # 堆积条形图。
4、百分比堆积条形图百分比堆积柱形图以二维垂直百分比堆积矩形显示数值。用于比较各个类别的数值所占总数值的百分比大小。
data1 %>%
ggplot(aes(x = nitrogen, y = v1, fill = variety)) + geom_bar(stat = "identity", width = 0.4, position = "fill") # 百分比堆积条形图。
参考资料
ggplot2: 数据分析与图形艺术,西安交通大学出版社,2013.
R语言数据可视化之美:专业图表绘制指南,电子工业出版社,2019.
R数据科学,人民邮电出版社,2018.
R数据可视化手册,人民邮电出版社,2014.
- END -
本文使用 文章同步助手 同步