淺談生態學領域科研圖表繪製的方向和未來

2021-02-14 微生信生物

統計和繪圖之間界限越來越模糊;

組合圖形是趨勢;

示意圖或者照片圖像和圖表逐漸結合;

R語言繼續發光發熱。ggplot是核心。

在近年來,隨著作圖工具發展,我們越來越自由,更加可以隨心所欲出圖。ggplot的出現讓圖形的繪製更加簡單。人們更加追求組合圖形的繪製。尤其是大文章,對組合圖形的熱度不減。

科研圖表複雜度提高和色彩運用更加注重美學特徵,這已經相當明顯了,之後會有一篇帖子專門論述這兩個特徵。今天我們來談談以上的三個特徵。那就是組合圖表熱。其實我們仔細思考,之前的雙坐標圖形就是一種簡單的組合圖表,到現在普遍的箱線圖和散點圖的結合圖表:可用於展示樣本總體和細節,到異曲同工小提琴圖和散點。當然隨著這些基本的組合圖形逐漸滿足不了人們的需求,比價複雜的組合圖形出現,用於展示基本數據的統計。不如ggpubr等一些包吧:這些圖形足夠讓我們浮想聯翩,但是實際上表達的含義卻不夠,然而ggpubr將這些圖層都封裝起來了,很漂亮的圖形,但是到目前我還沒發現有一些發散性的應用。這個包有點偽ggplot的意思,同時設置大量的參數,如果開發者得以改進的話就太好了。(下面附著出圖代碼,大家就可以看到這一回事)

ggscatterhist =function(data, x, y, group =NULL, color ="black", fill =NA,

palette =NULL, shape =19, size =2, linetype ="solid",

bins =30, margin.plot =c("density","histogram",

"boxplot"), margin.params =list(), margin.ggtheme =theme_void(),

margin.space =FALSE, main.plot.size =2, margin.plot.size =1,

title =NULL, xlab =NULL, ylab =NULL, legend ="top",

ggtheme =theme_pubr(),...)

library(ggpubr)

# Grouped Scatter plot with marginal density plots

ggscatterhist(

iris, x ="Sepal.Length", y ="Sepal.Width",

color ="Species", size =3, alpha =0.6,

palette =c("#00AFBB","#E7B800","#FC4E07"),

margin.params =list(fill ="Species", color ="black", size =0.2)

)

# Use box plot as marginal plots

ggscatterhist(

iris, x ="Sepal.Length", y ="Sepal.Width",

color ="Species", size =3, alpha =0.6,

palette =c("#00AFBB","#E7B800","#FC4E07"),

margin.plot ="boxplot",

ggtheme =theme_bw()

)

library(ggpubr)

# Data preparation

housetasks <- read.delim(

system.file("demo-data/housetasks.txt",package="ggpubr"),

row.names =1

)

head(housetasks,4)

# Visualization

ggballoonplot(housetasks, fill ="value")+

scale_fill_viridis_c(option ="C")

慢慢的組合圖表就這樣開始了:並不是說之前沒有啊,下面你們會看到基於base的組合圖表,是相當強大的,只是熱度沒有現在這麼高而已。Y叔的ggtree提供了facet_plot函數,用於進化樹同各種圖表的組合,最近的版本還支持了聚類對象,因此,樣本距離和這使得gtree運用起來也就多一些。

前一段時間在微生信生物群中討論過好多優秀的可視化圖表,甚至有些圖表目前無法通過R語言實現。這裡我將這些優秀的圖表展示給大家。也借著這些圖形談一談未來的論文圖表。

這張圖形是明顯的Graphlan繪製的,但是就這上面一個個的柱狀圖是沒有辦法在同一個坐標標度中實現的,所以目前絕對只能組合圖形。基於graphlan繪製的進化樹很漂亮,但是調參數確實是巨大的問題,由於目前還很少有工具可以替代graphlan,所以我們還是經常使用這個工具,目前,R語言中ggtree的設計理念似乎可以解決這個問題,但是兩年前我就問過Y叔了,至今外環繪製只有熱圖。其實可以繪製熱圖,就可以繪製其他元素,例如各種形狀,這樣下來設置比graphlan的外環內容更加豐富,畢竟基於ggplot許多開發者構造了多種圖層元素,足以幹掉graphlan。

最近ggtree的相關工作者有考慮到graphlan,比如microiomeviz包,就提供了將物種分類樹構造成ggtree對象,並且提供類似graphlan輸出的圖形樣式,正在做,但是還不夠,最起碼對於擴增子數據不是很好的兼容,例如:我們使用擴增子注釋數據很容易得到graphlan建樹文件,但是由於對未注釋物種的處理方式不同,所以我們使用microiomeviz包來處理擴增子注釋數據是不容易的。但這是一個很好的開端。

這張圖表出現在2015年的science,目前已經可以通過ggcor包進行實現了。下面這幾張圖形式是早期的樣式,依靠ggplot的出圖,完全兼容,並在昨天(2020年3月12日)完成了對代碼的最終改造。這是組合圖表的的有益嘗試。在2015年,當時並沒有成熟的工具來繪製這個圖表,我們不知道作者是如何繪製的,但是大概率是手動組合,但卻提供了創新的思路,讓我們可以用於開發。

這張圖片的難點是熱圖同相關圖形結合,並且將類似於進化樹的標籤加到圖形中,按照某種規定在熱圖上標記方框,是否可以通過R 語言實現呢,顯然ggplot目前還不行。標記方框可以使用聚類算法,或者指定等來構造,似乎目前ggcor可以做一部分,但是目前還不夠完善。右側物種分類信息本來是很難添加的,但是經過思考和實踐,microbiomeViz結合ggtree可以完成這個物種分類信息的添加,想必會更好看。

堆疊柱狀圖如何展示極高豐度的指標和極低豐度的指標,這篇CHM給出了自己的方案。首先是將柱狀圖按照豐度排布豐度塊,低豐度的將坐標軸拉長展示,而卻還加進去了坐標截斷,ggplot對斷軸支持度不夠,所以實現起來還是有一定難度的。這個方案應該可以通過R語言facet實現,但是ggplot天生對截斷縱坐標圖形支持不夠,這是短板,所以實現以下功能還是有一定難度的。

18年發表與microbiome的擴增子加代謝物組的工作,熱圖實際上從來就沒有熱過,冷豔的表達更加深入人心,這樣的圖形結合左側的分類箱線圖,通過作圖實現還是相當困難,主要是實現多對一排列。這張圖形看上去是組合起來的,相比於上面的圖形,似乎沒有足夠的亮點,但是讓我思考了了一個在熱圖上聚類的方法,其實挺不需要添加圖層來標記,我們將熱圖按照聚類等數據將熱圖分隔開來,只需指定分組即可得到類似的效果。

複雜熱圖,目前ggplot對這種複雜圖形的支持不夠,base下的plot可以實現許多複雜的組合圖形,比如下面的這張:可通過ComplexHeatmap包實現。這是目前使用的人很少罷了。base對於組合圖形的支持很好,base非常強大,例如我們目前很火熱的upset圖形就是使用base出圖的,但是逐漸有了gg版本的upset。

這張圖形結合熱圖和氣泡圖,兩者可以通過連線進行組合。

最近幾年網絡,尤其是漂亮的網絡在高水平SCI上層出不窮,目前經典的可視化方式就是gephi的圓心,並結合計算量很大的layout得到比較好的成圖。cytoscape可以根據不同模塊等分類進行分開展示網絡,這是其特色,R語言對於網絡圖可視化顯得不足,但是確實在發展目前ggraph包開發,sne包,tidyverse等包都可以使用ggplot出圖,這是網絡可視化發展的第一步,很欣喜看到這種變化,但是到達到gephi和cytoscape的效果是要困難不少。

這是15年發表在Mbio上的一篇文章:The Soil Microbiome Influences Grapevine-Associated Microbiota,使用了如圖所示的網絡圖,按照葡萄植株的不同位置,將網絡變形,這樣做是想要突出微生物群落和空間位置之間的關係。

在19年的焦碩的一篇文章中將微生物和地圖整合起來其實和上一張圖是一個道理。那這張圖你會做嗎?

網絡圖同示意圖,無論是植物還是地理地圖等結合展示可以更加清晰的描述微生物在空間的關係,這似乎是趨勢:圖形和圖像慢慢開始結合,視覺震感程度也更強,表達也更加容易。近年來在R語言中出現gganatogram包,可用於ggpplot繪製示意圖,那麼現在示意圖也可以使用ggplot畫,網絡圖也可以使用ggplot話,兩者結合似乎只需一步就好了。這種努力理所當然的。

R語言在組合圖表中佔據的地位也越來越重要,以ggplot為框架進行圖表的組合將會更加深入。

所以在未來論文中,隨著研究的不斷深入,各種自然現象和發現需要更加複雜的圖表進行描述,單個圖表往往不能勝任,組合圖表將成為未來,其次圖像和圖形之間沒有明顯的節點,會更加靈活的運用。

相關焦點

  • 不懂科研數據圖形繪製?這個學習班你該來!科研論文插圖、數據處理和圖表製作學習班
    科研論文插圖、數據處理和圖表製作學習班2017年12月 15-17日 上海 ,14
  • 科研論文插圖、數據處理和圖表製作培訓班
    在醫學生物科研一線崗位10餘年,發表SCI論文18篇,總影響因子92.14分。承擔和參與了國家、省部級多項科研項目。熟練掌握醫學生物科研相關的各項軟體;對實驗數據的分析、數據圖形的繪製、生物統計的適用、科研圖片處理、醫學文獻的管理等方面具有獨到的見解。兼任雜誌的美術審編,對作者的圖表錯誤之處非常的熟悉。多次受邀在中國科學院系統及各大學醫學院做「插圖和圖表處理」講座。
  • 科研圖表製作技能及思維提高學習班
    第一天,我們會結合科研圖表和表的案例,給大家補充一些科研上必備的 Excel 技能,其中許多技能您可能至今第一次聽到,尤其是其中關於「三表理念」和「數據維度」的知識更是所有人欠缺的知識點。另外 1 / 3 是科研圖表使用的思想和理念。最後 1 / 3 才是操作技巧。這兩個部分的講解,我會糅合在一起並通過三款最常用的科研圖表軟體來演示。
  • 科研論文配圖與圖表製作技能學習班
    現場贈送U盤和高清視頻供課後複習使用科研論文配圖與三維圖像建模及渲染學習班2017年4月 14-16日(周五、周六、周日) 北京現場贈送U盤和高清視頻供課後複習使用【圖表班課程背景】論文中的圖表是一項重要的部分
  • 生態學與環境學院
    經過本科階段的學習,畢業生具備下列基本素質:(1)思想道德素質:包括正確的政治方向,遵紀守法、誠信為人,有較強的團隊意識和健全的人格;(2)文化素質:掌握一定的人文社科基礎知識,具有較好的人文修養;具有國際化視野和現代意識以及健康的人際交往意識;(3)專業素質:受到嚴格的科學思維訓練,掌握一定的科學研究方法,有求實創新的意識和革新精神;在相關學科研究與開發領域具有較好的綜合分析素養和價值效益觀念
  • 再讀《數量生態學:R語言應用》
    2020年,《數量生態學——R語言應用》的中文第二版也由賴江山老師翻譯出版了。Numerical Ecology with R 第一版已經過去十多年,這些年來生態學本身以及R語言都有新的發展。同時,我們還應該看到,生態學的方法也在影響著其他學科。例如我們在研究腫瘤異質性的時候,也會用到聚類,先把腫瘤細胞分成幾個亞群來分析。我們在研究免疫細胞的抗體多樣性的時候也會用到描述某生境下微生物多樣性的指標。在單細胞領域很多概念類比到生態學上,會變得十分容易理解,因為我們人類對生態的感覺是直觀的。浸潤
  • 觀點|生態學的科學概念及其演變與當代生態學學科體系之商榷
    2010年被評為全國優秀科技工作者,2010年和2011年兩次獲國家科技進步二等獎、2012年獲國家科技進步一等獎,2020年獲全國創新爭先獎。【主編觀點】欄目:《應用生態學報》最新開闢【主編觀點】欄目,連續刊出主編文章,探討生態學學科體系及發展方向,期待大家共同關注。
  • R筆記3:ggplot繪製商務圖表--雜誌級商業圖表
    經過摸索,R作圖可能是如下流程:讀入數據 -> 數據塑形 -> 繪製圖表 -> 雕琢圖表 -> 導出圖表數據塑形是個新詞彙,其實類似於在Excel中的作圖數據準備。和《圖表之道》之前琢磨商業圖表做法一樣,本帖以製作一個常見的簇狀柱形圖為例,來學習ggplot作圖的過程。
  • 論文插圖、機制模式圖 科研數據處理與圖表製作繪製專題班(課後提供作圖服務 12月19-20日 26-27日線上班
    圖表部分:有一些原始數據,怎樣進一步統計分析如何利用常用作圖軟體Graphpad、Sigmaplot、Origin繪製何種圖形和圖表如何將你的實驗數據規範、明確的進行可視化展示,以滿足文章投稿、畢業及課題匯報等的需要等    金老師是來自中科院系統。在醫學生物科研一線崗位10餘年,發表SCI論文18篇,總影響因子92.14分。
  • 推薦13款JavaScript圖形和圖表繪製工具
    導讀:本文作者Kevin Liew是一名Web設計師和開發者,熱衷於Web開發、前端開發以及jQuery。如今,在網際網路上發布在線免費的Javascript圖形和圖表繪製工具越來越多。在這篇文章中,我們搜集了13個JavaScript插件可用於繪製圖形和圖表。還有一部分是獨立的框架支持bars, lines, pies甚至還有一些更加複雜的圖形,比如,plots, Venn diagrams, heatmaps, newick trees, 2D-scatter plots, 2D-scatter bubble plots, 3D-scatter plots。
  • 考研非統考專業介紹:生態學
    2、研究方向:  生態學的研究方向主要有:  01種群生態學  02生態系統生態學  03擾動生態學  04理論生態學  05環境生態學(註:各大院校的研究方向有所不同,以東北師範大學為例)  3、培養目標:  本專業要求學生具備生態學專業紮實和寬厚的理論基礎知識、系統的研究方向專門知識和堅實的實驗技能
  • 科研論文插圖、數據處理和圖表製作學習班 2019年4月19-21日 上海
    科研論文插圖、數據處理和圖表製作學習班2019
  • 科研數據處理、圖表製作和論文插圖 11月14-15日 和21-22日線上班
    如何修繕圖像瑕疵、汙點如何運用摳圖技術以滿足論文及幻燈片需求照片、條帶、圖表的的排版電泳條帶胖瘦不一或者歪斜圖片該如何處理條帶的灰度分析和測量IOD值多圖像的排版圖表製作中存在的問題圖表的修改和排布圖表上標註線的繪製AI軟體來對各種軟體生成的線條圖的進行後期處理
  • 如何繪製好看的統計圖表
    統計分析一項重要的工作就是繪製統計圖表。而繪製統計圖表並非簡單的訓練就能速成,而是要大量的練習並不斷精益求精的改進。一個完整的統計圖應該包含以下要素及注意事項。(1)要有圖表題,一般在圖的下方(如果有腳註,可以在圖的上方),標題要簡介明了。如果是一份報告,報告中的統計圖要有標號。(2)橫軸和總之要標註清楚。如果有單位,需要註明。
  • 圖表繪製的必備技能
    張杰1 AI矢量圖表元素的修改對於Origin、R等繪圖軟體的圖表,可以導出svg、eps等矢量格式的圖片,然後使用AI軟體打開後:1.選擇圖片,選擇「對象(O)」-「剪切蒙版(M)」-「釋放(R)」;2.在選擇圖片「對象(O)」-「複合路徑(O)」-「釋放(R)」;3.選擇要修改的圖表元素,然後使用取色器調整
  • Python數據可視化實例之繪製圖表
    Python數據可視化實例之繪製圖表原創 蟲蟲安全 2018-09-05 17:41:57得利於語言的簡單明了、豐富的數據結構、豐富的類和模塊,Python1.折線圖在繪製折線圖時,如果你的數據很小,圖表的線條有點折,當你數據集比較大時候,比如超過100個點,則會呈現相對平滑的曲線。在這裡,我們使用三個plt.plot繪製了,不同斜率(1,2和3)的三條線。
  • 全科科研常用的圖表軟體!
    今天,小編為大家梳理一下在全科科研中會經常用到的幾款圖表軟體,基本屬於傻瓜軟體,簡單明了易「推倒」,趕緊跟著小編一起來看看吧~對於全科科研而言,統計圖表無疑是重中之重。SPSS是目前統計分析中最為常用的數據分析軟體,操作簡單,應用廣泛,堪比文獻檢索屆的「CNKI」。SPSS基本功能包括數據管理、統計分析、圖表分析、輸出管理等等。
  • AI科研繪圖(一):零基礎入門和基本圖形繪製
    AI都是可以處理科研用圖的神器,不管是示意圖模式圖、信號轉導通路圖、通過R或者數據處理軟體得到的生圖,還是需要後期排版的圖表,用AI都可以分分鐘搞定。而且對於科研繪圖而言,AI中複雜的功能也用不到,掌握最基礎的工具和方法就足夠了,所以希望大家通過這一系列教程,學會用AI繪製和處理各種論文繪圖。
  • 如何使用Excel繪製圖表?
    第1步,選住要繪製圖形的數據,也就是數據透視表裡的數據。到現在,我們生成的圖表是excel默認的格式,我們需要按之前聊過的設計原則對圖表進行些優化(知道這7個設計原則,你也可以設計出漂亮圖表),讓用戶更能看懂這個圖表。首先,我們需要將數據和圖表分開到兩張工作表中sheet。下面圖片我們看下如何操作。
  • 科研論文插圖/數據處理和圖表製作視頻課程 (380元/套 售完即止)
    ●常用作圖軟體Graphpad、Sigmaplot、Origin繪製各種圖形的方法和比較?●常見圖表的應用範圍、區別、選用經驗和注意事項是什麼?●Graphpad中如何繪製多重回歸線?●如何使用Roc曲線的參數擬合及統計分析?