ggThemeAssist|鼠标调整主题,并返回代码

生物信息学习的正确姿势

NGS系列文章包括NGS基础、高颜值在线绘图和分析、转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这)、ChIP-seq分析 (ChIP-seq基本分析流程)、单细胞测序分析 (重磅综述:三万字长文读懂单细胞RNA测序分析的最佳实践教程)、DNA甲基化分析、重测序分析、GEO数据挖掘(典型医学设计实验GEO数据分析 (step-by-step))、批次效应处理等内容。

R语言中的ggplot2是最美的绘图包之一。但调整主题的细节需要写大量代码,而且还要反复修改、预览,很是费时费力。

当然你可以用Adobe Illustrator等工具做后期编辑,但要是图重画,所有后期编辑的工作又要重来,无法实现可重复分析,每个修改都很崩溃。

有没有更方便的方式调整主题细节呢?

ggThemeAssist横空出世,它依赖shiny (>= 0.13), miniUI (>= 0.1.1), rstudioapi (>= 0.5), ggplot2和formatR,可以对ggplot2图形结果直接修改,并实时预览效果,同时编辑结束返回代码。相当于一个帮你写代码的翻译官!

此包必须在Rstudio环境中使用。运行下面示例代码:

# install.packages("ggThemeAssist")
library(ggplot2)
library(ggThemeAssist)
# 使用mtcars生成一个点图示例
gg <- ggplot(mtcars, aes(x = hp, y = mpg, colour = as.factor(cyl))) + geom_point()
# 开始调整主题
ggThemeAssistGadget(gg)

ggThemeAssist|鼠标调整主题,并返回代码_第1张图片

看到打开了一个窗口,上部为图形预览窗口,下部有6个选项卡,分别对应各类主题细节的调整,下面我们进行详细解释。

设置Settings

ggThemeAssist|鼠标调整主题,并返回代码_第2张图片

  • 绘图维度 Plot dimensions

Width、Height可鼠标点击文本框右侧箭头来微调图片宽、高尺寸,也可直接修改数字。

  • 通用选项 General options

Use FormatR 选项可以设置输出R代码的格式,勾选时的可读性更高,这可是R界大神,统计之都和R语言大会创始人谢益辉写的包。

默认勾选时,输出代码格式如下:

gg + theme(panel.background = element_rect(fill = NA),
     plot.background = element_rect(fill = NA))

不勾选,编辑后返回代码格式如下:

gg + theme(panel.background = element_rect(fill  =  NA), plot.background = element_rect(fill  =  NA))

默认选项虽然占用多行,但更利于阅读。具体选择则凭借个人喜好。个人推荐勾选,可实现多行并缩进排版,方便阅读和与同行交流。

Multiline results 是选择输出绘图代码形式,可以是行相加所有参数的形式,也可以是一行行独立累加主题的形式。

默认不勾选多行,推荐这个,示例如下:

gg + theme(panel.grid.major = element_line(linetype = "solid"),
    panel.grid.minor = element_line(linetype = "solid"),
    plot.background = element_rect(linetype = "blank"))

勾选多行会是独立累加主题的格式,示例如下,此种方案方便累加后去除参数,但变量会多次重复出现,各有利弊:

gg <- gg + theme(panel.grid.major = element_line(linetype  =  'dashed'))
gg <- gg + theme(panel.grid.minor = element_line(linetype  =  'dashed'))
gg <- gg + theme(panel.background = element_rect(fill  =  'gray87'))

面板和背景 Panel & Backgroud

ggThemeAssist|鼠标调整主题,并返回代码_第3张图片

  • 绘图区背景 Plot Background

即整个作图区的背景,包括填充色Fill,外边框类型Type、线宽Size和颜色Colour

  • 面板背景 Panel Backgroud

即坐标轴围成的数据分布区域,属性同上,包括填充色Fill,外边框类型Type、线宽Size和颜色Colour

  • 主网格 Grid Major

即图中X、Y轴刻度线对应的网格,建议使用,方便辅助识别数据位置;

  • 次网格 Grid Minor

即图中X、Y轴刻度线间的补充网格,看具体情况使用,方便进一步辅助识别特定数据准确位置;

坐标轴 Axis

ggThemeAssist|鼠标调整主题,并返回代码_第4张图片

ggThemeAssist|鼠标调整主题,并返回代码_第5张图片

  • 坐标轴文字 Axis text

Family:字体家族,默认为Sans,和我们常用的Arial类似;还常用Courier系列等宽字体,如显示核酸、蛋白序列对齐时要求使用;Helvetica是Science杂志推荐字体;
Face: 字体样式,如标准 plain(Adobe系列软件称Regular)、加粗 bold、斜体 italic、粗斜体 bold.italic
Size:字体大小,推荐8(无纸质版在线网络杂志,如Nature CommunicationCommunication BiologyScientific Report等);“7”是NatureScience最终发表字体大小;最小不要小于5,否则看不清。
Colour:颜色,默认为30%灰度 gray30,想突出坐标同刻度数值,可选black或gray0;
Hjust:X轴刻度值水平位置调整,默认0.5为相对刻度线居中对齐,0为相对刻度线左对齐;1为相对刻度线右对齐
Vjust:Y轴刻度值垂直位置调整,默认0.5为相对刻度线居中对齐,0为相对刻度线下对齐;1为相对刻度线上对齐
Angle:坐标轴角度,如标签过长,可调为30度或45度旋转,避免文字重叠的同时还可以节约空间,一般要配合Hjust等于1(右对齐)才更美观;一般情况下要对x或y轴单独修改

  • x坐标轴文字属性 Axis text.x

默认可以不修改,自动继承Axis text的属性。仅用于x轴属性需单独设置时修改,解释同上

  • y坐标轴文字属性 Axis text.y

默认可以不修改,自动继承Axis text的属性。仅用于y轴属性需单独设置时修改,解释同上

  • 坐标轴线属性 Axis line

主要修改X/Y轴的线型Type、宽度Size和颜色Colour

  • 刻度线 Axis ticks

同坐标轴线,可修改X/Y轴的线型Type、宽度Size和颜色Colour

标题与标签 Title and label

ggThemeAssist|鼠标调整主题,并返回代码_第6张图片

ggThemeAssist|鼠标调整主题,并返回代码_第7张图片

ggThemeAssist|鼠标调整主题,并返回代码_第8张图片

  • 标签 Lable

Title:图表标题,直接输入即可,方便吧
x-Axis label: 添加X轴标签
y-Axis label: 添加y轴标签
Colour:图例标题
Fill label:填充色标签
Size label:点大小标签
Alpha label:透明度标签
Linetype label:线型标签
Shape label:形状标签

  • 标题属性 Plot Title

与坐标轴属性类似,详见前面“坐标轴文字 Axis text”说明
Family:字体家族
Face: 字体样式,如标准plain、加粗bold、任何italic、粗斜体bold.italic
Size:字体大小,标题可以使用12,即标准字体系1.5倍,并加粗
Colour:颜色
Hjust:沿X轴水平位置调整
Vjust:沿Y轴垂直位置调整
Angle:文字旋转角度,逆时针

  • 坐标轴标签属性 Axis Labels

解释同上

图例 Legend

ggThemeAssist|鼠标调整主题,并返回代码_第9张图片

  • 图例位置 Legend position

Position:位置,可选无-none,左-left,右-right,上-top,下-buttom
Direction:方向,水平-horizontal,垂直-vertical

  • 图例标题属性 Legend Title

Family:字体家族
Face: 字体样式
Size:字体大小,可调8-10,个人喜欢和坐标轴同样大小,有人喜欢大点
Colour:颜色

  • 图例文字属性 Legend Text

同上

  • 图例背景属性 Legend Background

括填充色Fill,外边框类型Type、线宽Size和颜色Colour

  • 图例核心属性 Legend Keys

即图例中颜色图状的属性,同上

子标题和图注

ggThemeAssist|鼠标调整主题,并返回代码_第10张图片

可以修改子标题(Subtitle)和图注(Caption)中的内容。同时还可以修改文字的属性,如字体家族、样式、大小、颜色和水平位置

编辑结果导出绘图代码

以上面板中可修改上百个参数,并提供几百个属性值的选择。这些要是靠自己记住,那可真是太难了。此包为R语言绘图的细节调节提供了极大帮助。

而且调好样式之后,点击done就能马上输出规范的代码,方便可重复计算和进一步修改。这就是代码的强大之处。

gg + theme(plot.subtitle = element_text(size = 8,
    colour = "gray25", hjust = 0.25), axis.line = element_line(linetype = "dotdash"),
    panel.grid.minor = element_line(colour = "gray95",
        linetype = "dotted"), axis.text = element_text(size = 8,
        face = "bold", colour = "black",
        hjust = 1), axis.text.x = element_text(size = 1,
        angle = 45), legend.key = element_rect(fill = "antiquewhite4"),
    legend.background = element_rect(fill = "gray93",
        colour = "antiquewhite4", size = 1,
        linetype = "solid")) +labs(title = "Title for figure ", x = "x-Axis label",
    colour = "汽纲数量", fill = "fill title",
    subtitle = "Subtitle")

注意:在使用中最好不要有中文,否则会出现引号缺失,导致代码无法运行的情况。想要添加中文信息的话可以在代码输出之后手动添加,重新运行。

R环境信息

> sessionInfo()
R version 3.6.0 (2019-04-26)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17134)

Matrix products: default

locale:
[1] LC_COLLATE=Chinese (Simplified)_China.936  LC_CTYPE=Chinese (Simplified)_China.936
[3] LC_MONETARY=Chinese (Simplified)_China.936 LC_NUMERIC=C
[5] LC_TIME=Chinese (Simplified)_China.936

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] shiny_1.3.2         ggThemeAssist_0.1.5 ggplot2_3.1.1

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.1        pillar_1.4.1      compiler_3.6.0    formatR_1.7       later_0.8.0       plyr_1.8.4        tools_3.6.0
 [8] digest_0.6.19     jsonlite_1.6      tibble_2.1.3      gtable_0.3.0      pkgconfig_2.0.2   rlang_0.3.4       cli_1.1.0
[15] rstudioapi_0.10   withr_2.1.2       dplyr_0.8.1       grid_3.6.0        tidyselect_0.2.5  glue_1.3.1        R6_2.4.0
[22] sessioninfo_1.1.1 purrr_0.3.2       magrittr_1.5      scales_1.0.0      promises_1.0.1    htmltools_0.3.6   assertthat_0.2.1
[29] mime_0.6          colorspace_1.4-1  xtable_1.8-4      httpuv_1.5.1      labeling_0.3      miniUI_0.1.1.1    lazyeval_0.2.2
[36] munsell_0.5.0     crayon_1.3.4


R统计和作图

  • Graphpad,经典绘图工具初学初探

  • 维恩(Venn)图绘制工具大全 (在线+R包)

  • 在R中赞扬下努力工作的你,奖励一份CheatShet

  • 别人的电子书,你的电子书,都在bookdown

  • R语言 - 入门环境Rstudio

  • R语言 - 热图绘制 (heatmap)

  • R语言 - 基础概念和矩阵操作

  • R语言 - 热图简化

  • R语言 - 热图美化

  • R语言 - 线图绘制

  • R语言 - 线图一步法

  • R语言 - 箱线图(小提琴图、抖动图、区域散点图)

  • R语言 - 箱线图一步法

  • R语言 - 火山图

  • R语言 - 富集分析泡泡图

  • R语言 - 散点图绘制

  • R语言 - 韦恩图

  • R语言 - 柱状图

  • R语言 - 图形设置中英字体

  • R语言 - 非参数法生存分析

  • R语言 - 绘制seq logo图

  • WGCNA分析,简单全面的最新教程

  • psych +igraph:共表达网络构建

  • 一文学会网络分析——Co-occurrence网络图在R中的实现

  • 一文看懂PCA主成分分析

  • 富集分析DotPlot,可以服

  • 基因共表达聚类分析和可视化

  • R中1010个热图绘制方法

  • 还在用PCA降维?快学学大牛最爱的t-SNE算法吧, 附Python/R代码

  • 一个函数抓取代谢组学权威数据库HMDB的所有表格数据

  • 文章用图的修改和排版

  • network3D: 交互式桑基图

  • network3D 交互式网络生成

  • Seq logo 在线绘制工具——Weblogo

  • 生物AI插图素材获取和拼装指导

  • ggplot2高效实用指南 (可视化脚本、工具、套路、配色)

  • 图像处理R包magick学习笔记

  • SOM基因表达聚类分析初探

  • 利用gganimate可视化全球范围R-Ladies(R社区性别多样性组织)发展情况

  • 一分钟绘制磷脂双分子层:AI零基础入门和基本图形绘制

  • AI科研绘图(二):模式图的基本画法

  • 你知道R中的赋值符号箭头(<-)和等号(=)的区别吗?

  • R语言可视化学习笔记之ggridges包

  • 利用ComplexHeatmap绘制热图(一)

  • ggplot2学习笔记之图形排列

  • R包reshape2,轻松实现长、宽数据表格转换

  • 用R在地图上绘制网络图的三种方法

  • PCA主成分分析实战和可视化 附R代码和测试数据

  • iTOL快速绘制颜值最高的进化树!

  • 12个ggplot2扩展包帮你实现更强大的可视化

  • 编程模板-R语言脚本写作:最简单的统计与绘图,包安装、命令行参数解析、文件读取、表格和矢量图输出

  • R语言统计入门课程推荐——生物科学中的数据分析Data Analysis for the Life Sciences

  • 数据可视化基本套路总结

  • 你知道R中的赋值符号箭头<-和等号=的区别吗?

  • 使用dplyr进行数据操作30例

  • 交集intersect、并集union、找不同setdiff

  • R包reshape2,轻松实现长、宽数据表格转换

  • 1数据类型(向量、数组、矩阵、 列表和数据框)

  • 2读写数据所需的主要函数、与外部环境交互

  • 3数据筛选——提取对象的子集

  • 4向量、矩阵的数学运算

  • 5控制结构

  • 6函数及作用域

  • 7认识循环函数lapply和sapply

  • 8分解数据框split和查看对象str

  • 9模拟—随机数、抽样、线性模型

  • 1初识ggplot2绘制几何对象

  • 2图层的使用—基础、加标签、注释

  • 3工具箱—误差线、加权数、展示数据分布

  • 4语法基础

  • 5通过图层构建图像

  • 6标度、轴和图例

  • 7定位-分面和坐标系

  • 8主题设置、存储导出

  • 9绘图需要的数据整理技术

  • 创建属于自己的调色板

  • 28个实用绘图包,总有几个适合你

  • 热图绘制

  • R做线性回归

  • 绘图相关系数矩阵corrplot

  • 相关矩阵可视化ggcorrplot

  • 绘制交互式图形recharts

  • 交互式可视化CanvasXpress

  • 聚类分析factoextra

  • LDA分析、作图及添加置信-ggord

  • 解决散点图样品标签重叠ggrepel

  • 添加P值或显著性标记ggpubr

  • Alpha多样性稀释曲线rarefraction curve

  • 堆叠柱状图各成分连线画法:突出组间变化

  • 冲击图展示组间时间序列变化ggalluvial

  • 桑基图riverplot

  • 微生物环境因子分析ggvegan

  • 五彩进化树与热图更配ggtree

  • 多元回归树分析mvpart

  • 随机森林randomForest 分类Classification 回归Regression

  • 加权基因共表达网络分析WGCNA

  • circlize包绘制circos-plot

  • R语言搭建炫酷的线上博客系统

  • 28个实用绘图包,总有几个适合你

  • 热图绘制

  • R做线性回归

  • 绘图相关系数矩阵corrplot

  • 相关矩阵可视化ggcorrplot

  • 绘制交互式图形recharts

  • 交互式可视化CanvasXpress

  • 聚类分析factoextra

  • LDA分析、作图及添加置信-ggord

  • 解决散点图样品标签重叠ggrepel

  • 添加P值或显著性标记ggpubr

  • Alpha多样性稀释曲线rarefraction curve

  • 堆叠柱状图各成分连线画法:突出组间变化

  • 冲击图展示组间时间序列变化ggalluvial

  • 桑基图riverplot

  • 微生物环境因子分析ggvegan

  • 五彩进化树与热图更配ggtree

  • 多元回归树分析mvpart

  • 随机森林randomForest 分类Classification 回归Regression

  • 加权基因共表达网络分析WGCNA

  • circlize包绘制circos-plot

  • R语言搭建炫酷的线上博客系统

  • 维恩(Venn)图绘制工具大全 (在线+R包)

  • R包circlize:柱状图用腻了?试试好看的弦状图

  • 获取pheatmap聚类后和标准化后的结果

  • 增强火山图,要不要试一下?

  • 一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D

  • 赠你一只金色的眼 - 富集分析和表达数据可视化

  • 是Excel的图,不!是R的图

  • 道友,来Rstudio里面看动画了

  • 用了这么多年的PCA可视化竟然是错的!!!

  • R语言可视化学习笔记之ggridges包

  • 万能转换:R图和统计表转成发表级的Word、PPT、Excel、HTML、Latex、矢量图等


  • 那天空飘过的梅花月饼,是今年中秋最好的礼物

往期精品

画图三字经 生信视频 生信系列教程 

心得体会 TCGA数据库 Linux Python 

高通量分析 免费在线画图 测序历史 超级增强子

生信学习视频 PPT EXCEL 文章写作 ggplot2

海哥组学 可视化套路 基因组浏览器

色彩搭配 图形排版 互作网络

自学生信 2019影响因子 GSEA 单细胞 

后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集

你可能感兴趣的:(可视化,人工智能,数据可视化,html,python)