7、科研作图之箱型图详解——ggplot2

一、数据准备

#数据准备
data("ToothGrowth")
ToothGrowth$dose = factor(ToothGrowth$dose)
head(ToothGrowth)

 

c8b465de39cc4c30a4b515f532d08895.png

使用R自带的数据库进行测试,数据包括len,supp,dose,其中len作为具体数值y,其他两个分组均作为因素数据进行分析作图。

二、基本语法

1、单组数据

library(ggplot2)

p = ggplot(ToothGrowth, aes(x = dose, y = len))
p + geom_boxplot() #图1

2、多组数据

使用supp作为分组依据,supp包括OJ和VC两类。

p + geom_boxplot(aes(fill = supp), position = position_dodge(1))#图2

790a0797cb1e47febf1ec1c72e91d7a3.png

图1

9f1507893ff0490babe71830fb8554b3.png

图2

三、基础进阶

以下的变化都是在图1(单组数据)的基础上进行的变化,多组数据的变化同理可用。

1、横纵坐标交换

p + geom_boxplot() + coord_flip()

2、哑铃型箱型图

p + geom_boxplot(notch = TRUE)

notch参数为TRUE是哑铃型,FALSE为方箱型。 

ef416bd687e6414eba71b170aadc0f2e.png

横纵坐标交换

d370517328c94c9b921713eee8073f40.png

哑铃型箱型图

 

3、添加平均值点

p + geom_boxplot() + stat_summary(fun.y = mean, geom = "point",
             shape = 18, size = 4, color = "red")

 shape为添加点的类型,在散点图详解一文已经有详细介绍。

4、自定义横坐标

p + geom_boxplot() + 
  scale_x_discrete(limits=c("0.5", "2"))

 可见,在规定横坐标时,可以去掉一些不想要的组,如上面我们就去掉了dose=1.5的一组数据。

6b857d8d8a9847ee8149d5ec667aa44f.png

添加平均值点

d4bf923eb5a24a77965d0c2e3abcd88e.png

自定义横坐标

5、自定义箱体颜色

#不同箱体颜色(内部)基础默认颜色

p + geom_boxplot(aes(fill = dose))

 

#自定义每个箱体颜色
#填充颜色
p + geom_boxplot(aes(fill = dose)) + 
  scale_fill_manual(values=c("blue", "yellow", "grey"))

 

#线条颜色
p + geom_boxplot(aes(color = dose)) + 
  scale_color_manual(values=c("blue", "yellow", "grey"))

 

#多组数据的箱型图
p + geom_boxplot(aes(fill = supp), position = position_dodge(1)) +
  scale_fill_manual(values=c("yellow", "grey"))

 小结论:

在ggplot2作图中,参数fill都是表示内部的填充颜色

参数color都表示线条(边框)的颜色。

52e9d64d52214e749036ff68d11ea913.png

不同箱体颜色(内部)基础默认颜色

cc8c97b477ae4f5baec8980595c873c1.png

填充颜色定义

eed4aa845775494fb2d4e20e9523bff8.png

线条颜色定义

b4c31887d5f14410856c88a40da868fc.png

多组数据的箱型图颜色定义

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值