拒绝“菜色”,如何绘制高级且美丽的箱线图?(代码分享)

2021-09-06 17:20:10, 多层组学定制服务 上海欧易生物医学科技有限公司


点击上方蓝色字体关注我们

蛋白组学、代谢组学服务专家

者按

科研论文中,我们经常在Nature,Science杂志的各种高级文章中看到异常优美的图片,大都是这样色儿的:



很多审稿人看稿件的顺序都是题目、摘要、图表,然后才是前言、参考文献和正文。由此可见图表作为一篇文章的“脸面”,图画的好,就能给Reviewer和Editor留下良好的第一印象!有了印象分,投稿成功率才能提高。

看完CNS级别的图,惊叹于大神们神乎其技的作图技术,再审视一下自己的图表?从图片细节、图形外观、配色等诸多问题上,与其相比真是“菜色”满满难以望其项背也。

本篇小编将从使用频率高的箱线图入手跟大家讲解每个图形的特点以及如何绘制出漂亮的科研图形。


箱·线·图


箱线图主要是通过最大值,上四分位数,中位数,下四分位数,最小值五个值来描述数据分布情况,直接明了地展示数据的分布情况、偏态性及异常值。


如上图所示,首先来介绍几个定义:


1、四分位数:

把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值。

Q1:第一四分位数,第25%的数字;

Q2:第二四分位数,第50%的数字,即中位数;

Q3:第三四分位数,第75%的数字;

IQR:第三四分位数与第一四分位数的差距又称四分位距;


2、异常值和最值:

异常值:在(Q1 - 1.5 IQR, Q3 + 1.5 IQR)范围之外的点;

最值:去除异常值后的最小值和最大值;


总而言之,箱线图中可以反映数据的集中或离散趋势。对于科研的研究有着重要的意义和价值!


那么,箱线图是怎么绘制的呢?

简单来说,您只要整理好表达量以及组别的数据,就可以绘制箱线图啦~这个实际操作起来非常简单快捷易懂,下面跟着小编一起学习一下两种超简单的方法吧~~


1

用R自带的graphics包绘制箱线图

# 数据创建set.seed(999)matrix(rnorm(18,18),5,8)->matcolnames(mat)<-c("A1","A2","A3","A4","A5","A6","A7","A8")# 绘制箱线图boxplot(mat)

向右滑动查看更多


上面的箱线图肯定不是我们想要的,那如何改变颜色呢?下面就给大家展示。

boxplot(mat[,1:4],data=mat,col="red",at = 1:4,boxwex = 0.5, xlim = c(0.5,9),)#在图上画出A1~A4的箱线图boxplot(mat[,5:8],data=mat, col="lightblue",add=T, at = 5:8, boxwex = 0.5)#在图上画出A5~A8,注意:add=T,代表添加至上一张图上。legend("topright", c("A1","A2","A3","A4","A5","A6","A7","A8"),fill = c("red","red","red","red","lightblue","lightblue","lightblue","lightblue"),cex=0.8)#添加图例

向右滑动查看更多


那如何再美化亿点点呢?这就需要使用ggplot2包了


2

用ggplot2包绘制箱线图

首先安装及加载ggplot2包#安装包install.packages("ggplot2")   #加载包library("ggplot2")
# 数据创建
data.frame(value=rep(rnorm(10,10),4), Type=rep(c("A1","A2","A3","A4","A5","A6","A7","A8"),5))->data

# 绘制箱线图
ggplot(data,aes(Type,value,fill=Type)) + geom_boxplot()

向右滑动查看更多

#进一步美化
install.packages("ggthemes")library(ggthemes)
ggplot(data,aes(x = Type, y = value, fill = Type)) +        geom_boxplot() +        scale_y_continuous(name = "sample_value")+#给y轴命名        scale_x_discrete(name = "sample_Type") +        #给x轴命名        ggtitle("sample_boxplot") +        #给图标表命名        theme_calc() +        #设置office Excel风格的主题        theme(plot.title = element_text(size = 14, face =  "bold"),              text = element_text(size = 12),              axis.title = element_text(face="bold"),              axis.text.x=element_text(size = 11))        #调整x、y轴标签及标题的字体大小

向右滑动查看更多


关于绘制箱线图的介绍到这里就结束了,想要不同风格的老师也可以尝试ggthemes包的其他主题。



3

附录


**Themes (主题)**

名称|描述

:---|:---

theme_calc()|一套LibreOffice Calc(对应office Excel)风格的主题

theme_economist()| 《经济学人》(The Economist)杂志配图风格主题

theme_excel()| 复制Excel(pre-2003)灰色丑陋风格的主题

theme_few()| “Practical Rules for Using Color in Charts"这本书的一个主题

theme_fivethirtyeight()| fivethirtyeight.com网站配图风格主题

theme_gdocs()| Google Docs风格主题.

theme_hc()| Highcharts JS风格主题.

theme_pander()| pander包风格主题

theme_solarized()| 使用 solarized 调色板的主题

theme_stata()| Stata绘图主题

theme_tufte()| Tufte’s The Visual Display of Quantitative Information.这本书的最简洁的主题

theme_wsj()| 《华尔街日报》(The Wall Street Journal)的配图风格主题


文末看点 鹿明生物

上海鹿明生物科技有限公司多年来,一直专注于生命科学和生命技术领域,是国内早期开展以蛋白组和代谢组为基础的多层组学整合实验与分析的团队。

同时,鹿明生物线上学习平台易明学院也拥有众多生信教程,欢迎访问:

https://www.yimingxueyuan.com/


另,
欧易/鹿明生物云平台超多绘图工具
,快来尝试一下吧~


链接访问:https://cloud.oebiotech.cn/task/

猜你还想看


生信课程:【SCI·绘图】升级版·小提琴图-云雨图(带R代码分享)

生信课程:这个R包不太冷系列五——降维分析

生信课程:这种图竟比条形图、箱线图和抖动图展现度更优?

生信课程:这个R包不太冷系列四:数据处理不可错过的dplyr

生信课程:手把手教你如何从iprox上自动批量下载原始数据

生信课程:这个分析不太难系列(一)——方差分析

生信课程:一行代码,轻松绘制动态关系网络图(Jaal 库)

生信课程:这个R包不太冷系列三:一种“简单代码+简单调整=即刻出图”的包

生信课程:我要如何才能拯救你!我的论文!我的实验数据!

云平台:奥利给~~代谢通路富集分析原来还可以这么做?

云平台:震惊!他花了3分钟就完成了我三个周的工作!

云平台:欧易/鹿明云 | 免费的聚类热图不试试吗?


END

虫儿飞  撰文

欢迎转发到朋友圈

本文系鹿明生物原创

转载请注明本文转自鹿明生物

我知道你在看

点“阅读原文”了解更多


  • 客服电话: 400-6699-117 转 1000
  • 京ICP备07018254号
  • 电信与信息服务业务经营许可证:京ICP证110310号
  • 京公网安备1101085018
  • 客服电话: 400-6699-117 转 1000
  • 京ICP备07018254号
  • 电信与信息服务业务经营许可证:京ICP证110310号
  • 京公网安备1101085018

Copyright ©2007-2023 ANTPEDIA, All Rights Reserved