前言:
本系列文章基于《R语言实战》(第2版),建议期末之后的同学尽量阅读原书。有任何不懂的问题请下载copyask一键复制查询。
- barplot函数
- 简单的条形图
在上一节中,我们讨论了包的使用。这节中我们先导入一个包:
library(vcd)
在这个包中包含了Arthritis(关节炎)数据集(可以通过View(Arthritis)来查看此数据集,或者直接输入Arthritis来查看),通过使用$符号我们可以调用该数据集中的任意子数据或子数据集:
counts <- table(Arthritis$Improved)
接下来我们使用barplot函数:
Barplot(counts, main = “简单条形图", xlab = "提升效果", ylab = "频数")
而在函数后面加上horiz = T(这里T等价于TRUE)则可以使得条形图水平过来。
- 堆砌条形图和分组条形图
如果我们想要考虑两个数据集的列联表的条形图,我们在后面添加beside = T/F的函数。
比如我们想要将Arthritis中的Improved与Treatment联立。在这张数据集中,每位病人只使用了两种疗效Treated与Placebo,我们想观察这两种疗法的具体治疗效果,首先我们先将两份数据放入一个表中:
counts <- table(Arthritis$Improved, Arthritis$Treatment)
接下来,我们来看它的堆砌条形图:
barplot(counts, main = "堆砌条形图", xlab = "疗法", ylab = "频数",
col = c("red", "yellow", "green"), legend = rownames(counts))
这时的beside默认为F. 我们将beside设置为T
barplot(counts, main = "分组条形图", xlab = "疗法", ylab = "频数",
col = c("red", "yellow", "green"), legend = rownames(counts), beside = T)
思考:谁的疗效更好?
作业:请你试着探究治愈效果与性别的关系
- 均值条形图
均值条形图只是其中的一种,我们通过掌握均值条形图就能够同理掌握中位数、标准差等的条形图。接下来我们用美国四大区域的(东北、南部、中央、西部)文盲率举例。
首先我们先将数据封装起来(同上,感兴趣的小伙伴可使用View自行查看):
states <- data.frame(state.region, state.x77)
接下来我们根据每个州的地域,函数选择平均值,来选择出每个州的文盲率:
means <- aggregate(states$Illiteracy, by = list(state.region), FUN = mean)
使用order函数将选择出的平均值进行排序,具体用法可使用help(order)进行查看:
means <- means[order(means$x),]
接下来我们使用barplot函数,并在后面加上names.arg来为该函数命名:
barplot(means$x, names.arg = means$Group.1)
加上标题:
title("平均文盲率")
目前为止,我们介绍了常用的条形图的使用方法,足以应对期末考试。如果想要知道更多功能强大的条形图绘制,请下载copyask进行询问。