第6章 基本图形

《R语言实战》笔记系列


本章学习大纲

1.条形图、箱线图和点图

2.饼图和扇形图

3.直方图和核密度图

第一部分 条形图、箱线图和点图

条形图

条形图通过垂直的或水平的条形展示了类别型变量的分布(频数),使用函数barplot()即可完成。一般形式是barplot(height)。其中height是一个向量或矩阵。

选项horiz=TRUE代表生成一个水平条形图,还可以添加标注选项。选项main代表添加图形标题,选项xlab和ylab则分别添加x轴和y轴标签。

简单条形图和水平条形图代码
简单条形图和水平条形图图形

如果绘制的类别型变量是一个因子或有序型因子,就可以用函数plot()创建一个条形图。无需用table()函数将其表格化。

plot()函数的直接应用
plot()函数应用图形

堆砌条形图和分组条形图

如果height是一个矩阵而不是向量的话,则绘图结果是一幅堆砌条形图或分组条形图。若beside=FALSE(默认值),则矩阵中的每一列都将生成图形的一个条形,各列中的值将给出堆砌的“子条”的高度。若beside=TRUE,则矩阵中的每一列都表示一个分组,各列中的值将并列而不是堆砌。

堆砌条形图和分组条形图  代码
堆砌条形图和分组条形图  图形

均值条形图

条形图不一定只计算计数数据或频率数据。可以用数据整合函数并将结果传递给barplot()函数,来创建表示均值,中位数,标准差等的条形图。

排序后均值的条形图代码
美国各地区平均文盲率排序的条形图

ps:各个条形可以使用lines()函数绘制的线段连接起来。可以用barplot()里的参数names.arg指定一个字符向量作为条形的标签名。也可以使用图形参数辅助调整文本间隔。

为条形图搭配标签的代码
微调了标签的垂直条形图

棘状图

棘状图(spinogram)对堆砌条形图进行了重缩放,每个条形的高度均为1,每一段的高度即为比例。棘状图可有grid包中的函数spine()绘制。

棘状图示例

第二部分 饼图

饼图由函数pie(x,labels),其中x是一个非负数值向量,表示每个扇形的面积,而labels则是表示各扇形标签的字符型向量。

饼图示例代码

为了改善饼图比较各扇形的值困难的问题,可以使用扇形图(fan plot)的饼图。在R中,扇形图通过plottrix()包中的fan.plot()函数实现的。

扇形图示例代码
饼图和扇形图的示例

第三部分 直方图

直方图通过在X轴上将在值域分割为一定数量的组,在Y轴上显示相应值的频数,展示了连续型变量的分布。通过hist()函数来创建直方图。一般格式为hist(x),其中x是由一个数据值组成的数值向量。参数freq=FALSE表示根据概率密度而不是频数绘制图形。参数breaks用于控制组的数量。在定义直方图中的单元值,默认将生成等距切分。

直方图的代码示例
直方图示例绘制结果

第三部分 核密度图

核密度图是用于估计随机变量概率密度函数的一种非参数方法,是用于观察连续型变量分布的有效方法。绘制密度图的方法(不叠加到另一幅图上方):plot(density(x))。其中x为一数值型向量。若要向一幅已经存在的图形叠加一条密度曲线,可以使用lines()函数。polygon()函数根据顶点的x和y坐标绘制多边形。

密度图示例代码
密度图示例代码绘图结果

核密度图可以用于比较组间差异。可以使用sm包中的sm.density.compare()函数将图形叠加两组或更多的核密度图。一般格式:sm.density.compare(x.factor)。其中x是数值型向量,factor是分组变量。

第四部分 箱线图

箱线图(又称盒须图)通过绘制连续型变量的五数总括,即最小值、下四分数(第25百分位数)、中位数(第50百分位数)、上四分位数(第75百分位数)以及最大值,描述了连续型变量的分布。

简单的箱线图代码示例
箱线图绘图结果
boxplot.stats()函数示例

执行boxplot.stats()即可输出构建图形的统计量。

箱线图可以展示单个变量或分组变量,一般格式:boxplot(formula,data=dataframe)。其中formula是一个公式,dataframe代表提供数据的数据框(或列表)。一个示例公式为y~A,这将为类别型变量A的每个值并列地生成数值型变量y的箱线图。公式y~A*B则为类别型变量A和B所有水平的两两组合生成数值型变量y的箱线图。

添加参数varwidth=TRUE将使箱线图的宽度与其样本大小的平方成正比。参数horizontal=TRUE可以反转坐标轴的方向。

并列箱线图的代码示例
不同汽缸数量车型油耗的箱线图

可以添加notch=TRUE,可以得到含凹槽的箱线图。若两个凹槽互不重叠,则表面它们的中位数有显著差异。

不同汽缸数量车型油耗的含凹槽箱线图

第五部分 小提琴图

小提琴图是箱线图变种,是箱线图与核密度图的结合。用vioplot()函数,一般格式为(x1,x2,....,names=,col=),其中x1,x2,....表示要绘制的一个或多个数值向量(将为每个向量绘制一幅小提琴图)。

未完待续。。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,335评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,895评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,766评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,918评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,042评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,169评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,219评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,976评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,393评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,711评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,876评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,562评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,193评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,903评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,699评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,764评论 2 351

推荐阅读更多精彩内容