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)看到打開了一個窗口,上部為圖形預覽窗口,下部有6個選項卡,分別對應各類主題細節的調整,下面我們進行詳細解釋。
設置Settings
繪圖維度 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
繪圖區背景 Plot Background
即整個作圖區的背景,包括填充色Fill,外邊框類型Type、線寬Size和顏色Colour
面板背景 Panel Backgroud
即坐標軸圍成的數據分布區域,屬性同上,包括填充色Fill,外邊框類型Type、線寬Size和顏色Colour
主網格 Grid Major
即圖中X、Y軸刻度線對應的網格,建議使用,方便輔助識別數據位置;
次網格 Grid Minor
即圖中X、Y軸刻度線間的補充網格,看具體情況使用,方便進一步輔助識別特定數據準確位置;
坐標軸 Axis
坐標軸文字 Axis text
Family:字體家族,默認為Sans,和我們常用的Arial類似;還常用Courier系列等寬字體,如顯示核酸、蛋白序列對齊時要求使用;Helvetica是Science雜志推薦字體;
Face: 字體樣式,如標準 plain(Adobe系列軟件稱Regular)、加粗 bold、斜體 italic、粗斜體 bold.italic
Size:字體大小,推薦8(無紙質版在線網絡雜志,如Nature Communication、Communication Biology、Scientific Report等);“7”是Nature、Science最終發表字體大小;最小不要小于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
標簽 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
圖例位置 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
即圖例中顏色圖狀的屬性,同上
子標題和圖注
可以修改子標題(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: defaultlocale: [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.936attached base packages: [1] stats graphics grDevices utils datasets methods baseother attached packages: [1] shiny_1.3.2 ggThemeAssist_0.1.5 ggplot2_3.1.1loaded 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.4R統計和作圖
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?單細胞?
后臺回復“生信寶典福利第一波”或點擊閱讀原文獲取教程合集
總結
以上是生活随笔為你收集整理的ggThemeAssist|鼠标调整主题,并返回代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Science亮点!ExSeq:完整生物
- 下一篇: 热图绘制一个快乐五一