现在我们开始去学习关于R的画图,我们无论在何时分析数据,第一件要做的事情就是观察它。对于每个变量,哪些值是最常见的?值域是大是小?是否有不寻常的观测?R中提供了丰富的数据可视化函数。
条形图
条形图通过垂直的或水平的条形展示了类别型变量的分布(频数) 。函数barplot()的最简单用法是:barplot(height) 其中的height是一个向量或一个矩阵。 在接下来的示例中,我们将绘制一项探索类风湿性关节炎新疗法研究的结果。数据已包含在随vcd包分发的Arthritis数据框中。由于vcd包并没用包括在R的默认安装中,请确保在第一次使用之前先安装它(install. packages("vcd")) 。注意,我们并不需要使用vcd包来创建条形图。我们读入它的原因是为了使用Arthritis数据集。
简单的条形图
若height是一个向量,则它的值就确定了各条形的高度,并将绘制一幅垂直的条形图。使用选项horiz=TRUE则会生成一幅水平条形图。你也可以添加标注选项。选项main可添加一个图形标题,而选项 xlab 和 ylab 则会分别添加 x 轴和 y 轴标签。在关节炎研究中, 变量Improved记录了对每位接受了安慰剂或药物治疗的病人的治疗结果:
这里我们看到,28位病人有了明显改善,14人有部分改善,而42人没有改善。你可以使用一幅垂直或水平的条形图来绘制变量counts。
堆砌条形图和分组条形图
如果height是一个矩阵而不是一个向量,则绘图结果将是一幅堆砌条形图或分组条形图。若beside=FALSE(默认值) ,则矩阵中的每一列都将生成图中的一个条形,各列中的值将给出堆砌的“子条”的高度。若beside=TRUE,则矩阵中的每一列都表示一个分组,各列中的值将并列而不是堆砌。考虑治疗类型和改善情况的列联表:
你可以将此结果绘制为一幅堆砌条形图或一幅分组条形图。
棘状图
最后让我们再来看一种特殊的条形图,它称为棘状图(spinogram) 。棘状图对堆砌条形图进行了重缩放,这样每个条形的高度均为1,每一段的高度即表示比例。棘状图可由vcd包中的函数spine()绘制。以下代码可以生成一幅简单的棘状图:
治疗组同安慰剂组相比,获得显著改善的患者比例明显更高
结束语
我还是那个在生信路上摸爬滚打的工具人。一起加油吧!如果需要提供帮助或者是反馈意见,可以发送邮件到 liwei12306@163.com