R语言数据分析及可视化

R语言绘图基础篇-箱型图(geom_boxplot)

2021-10-04  本文已影响0人  R语言搬运工

此文内容首发于微信公众号:R语言搬运工,关注公众号浏览更多精彩内容

image.png
原文地址

箱型图又叫盒须图、盒式图或箱线图,是一类用来展示数据分布范围的图形,根据数据分布规律,通过计算可以得到一组数据的上限值、下限值、上下四分位值、以及中位数和异常值。通过在图中对这几个数值使用不同线进行绘制,最终得到箱型图。箱型图不同位置的线段表示的值存在差异,下两图中对箱型图中的数值进行了一个详细的解释:

image.png
箱型图不同位点名称含义
image.png
箱型图对应于数据分布中的位点及计算方法
(引自MBA智库百科https://wiki.mbalib.com/wiki/Image:%E7%AE%B1%E7%BA%BF%E5%9B%BE%E5%9B%BE%E7%A4%BA.jpg#filelinks image.png

如何画好一个箱线图,不同的绘图软件提供的方法不同,最终绘制出的图形也形式各样,尽管如此,他们表示的意义都是相同的。ggplot2包提供了绘制箱型图的函数,与R语言中的基础绘图结果存在差异。

image.png
使用基础绘图函数boxplot与ggplot2绘制的箱型图
下面开始介绍在ggplot2中绘制箱型图的方法。
ggplot2中主要是用到了geom_boxplot()函数,同时包含添加箱须的stat_boxplot()函数,具体以mtcars数据作为案例进行绘制。

▉首先来一个简单的箱型图

library(ggplot2)
mtcars$cyl.f <- factor(mtcars$cyl,levels=c(4,6,8),
                       labels=c("4","6","8"))
mtcars$am.f <- factor(mtcars$am,levels=c(0,1),
                      labels=c("auto","standard"))
ggplot(mtcars,aes(cyl.f,mpg))+
  geom_boxplot()

绘图结果如下:


image.png

是不是感觉光秃秃的,很不美观?
下面开始“修图”

ggplot(mtcars,aes(cyl.f,mpg))+
  stat_boxplot(geom="errorbar",width=0.1,size=0.5,position=position_dodge(0.6),color="blue")+
  geom_boxplot(position=position_dodge(0.6),
               size=0.5,
               width=0.3,
               fill="gold",
               color="blue",
               outlier.color = "blue",
               outlier.fill = "red",
               outlier.shape = 19,
               outlier.size = 1.5,
               outlier.stroke = 0.5,
               outlier.alpha = 45,
               notch = F,
               notchwidth = 0.5)+
  theme(axis.title = element_text(size=18),
        axis.text = element_text(size=14))
image.png

通过设置颜色和添加箱须,绘制的图比刚才的图好看一点了,具体的要求可以根据参数自己去设置达到自己满意的结果


image.png

▉通过设置分类变量绘制箱型图

先上图


image.png

真正作图的时候,免不了会添加分类变量,绘制这种含有分类变量的箱型图,这也很简单就可以实现,通过将填充色映射给一个分类变量即可完成。

ggplot(mtcars,aes(cyl.f,mpg))+
  stat_boxplot(aes(fill=am.f),geom="errorbar",width=0.1,size=0.5,position=position_dodge(0.6),color="blue")+
  geom_boxplot(aes(fill=am.f),
               position=position_dodge(0.6),
               size=0.5,
               width=0.3,
               color="blue",
               outlier.color = "blue",
               outlier.fill = "red",
               outlier.shape = 19,
               outlier.size = 1.5,
               outlier.stroke = 0.5,
               outlier.alpha = 45,
               notch = F,
               notchwidth = 0.5)+
  theme(axis.title = element_text(size=18),
        axis.text = element_text(size=14))
image.png
image.png

ggplot2包绘制箱型图可以实现多参数调整,方便快捷。箱型图作为表征数据分布范围的图形,其实存在很多的变形图,比如瓶状图、小提琴图等等,都是用来展示数据分布范围的图形,具体的操作实现方法感兴趣的可以去网上查阅一下。

写在文末:

文章首发于公众号:R语言搬运工
关注带来更多精彩
原文地址

上一篇下一篇

猜你喜欢

热点阅读