ggrepel-解決散點圖樣品標籤重疊,方便篩選樣品

2021-02-20 宏基因組
ggrepel解決標籤之間重疊問題簡介

有時樣本比較多,而我們想在圖形中添加標籤的時候,容易出現標籤遮蓋的問題。

尤其是在擴增子研究中,在相同基因型、環境條件宿主(溫室植物、飼養動物)至少也需要6次以上生物學重複,如人類這種無法控制基因型和生活環境的研究對象,實驗組至少30個起才容易發現有統計為意義的差異菌。

而在樣品比較、樣品篩選時又必須看清這些點名字,用於篩選掉一些記錄錯誤、未報抗生素使用或隱性疾病等異常樣品。ggplot2的輔助包ggrepel就是專門處理遮蓋問題的專家。有了人類可讀的可視化結果,在我們下遊分析、樣品篩選、異常樣品鑑定更加方便高效。

ggrepel(https://github.com/slowkow/ggrepel)是發表在github上的開源包,使用之前是要先安裝:

安裝

Rstudio中安裝穩定版本:

install.packages("ggrepel")# 如果在R中,需要選擇源或指定源install.packages("ggrepel", repo="http://cran.us.r-project.org")

或者安裝最新的開發版本:

install.packages("devtools", repo="http://cran.us.r-project.org")library(devtools)devtools::install_github("slowkow/ggrepel")

geom_text()添加樣品標籤

我們先看看geom_text()添加標籤時的效果

library(ggplot2)#使用系統數據集mtcars演示ggplot(mtcars)+ geom_point(aes(wt, mpg), color="red")+  geom_text(aes(wt, mpg, label=rownames(mtcars)))+  theme_classic(base_size = 16)

可以看到可視化效果不是很好。接下來看看包ggrepel的效果。

geom_text_repel()解決樣品標籤重疊

geom_text_repel()是基於geom_text()

library(ggrepel)set.seed(123)ggplot(mtcars)+ geom_point(aes(wt, mpg), color="red")+  geom_text_repel(aes(wt, mpg, label=rownames(mtcars)))+  theme_classic(base_size = 16)

geom_label_repel()防標籤重疊並添加背景色

geom_label_repel()是基於geom_label(),它將標籤置於一個小方框中

ggplot(mtcars)+ geom_point(aes(wt, mpg), color="grey", size=5)+  geom_label_repel(aes(wt, mpg, fill=factor(cyl),  label=rownames(mtcars)))+ theme_classic(base_size = 16)

點太小顏色不容易區分組,直接給標籤上色是不是很容易區分樣品和組,以及觀察組內和組間的差異、篩選異常樣品呢?

基於擴增子分析PCoA實戰數據

測試數據和代碼詳見下文:

我們在此基礎上添加標籤、錯開標籤,以及按標籤著色篩選樣品。

geom_text添加樣品名

# 繪製主坐標準軸的第1,2軸p = ggplot(points, aes(x=x, y=y, color=genotype)) +  geom_point(alpha=.7, size=2) +  labs(x=paste("PCoA 1 (", format(100 * eig[1] / sum(eig), digits=4), "%)", sep=""),       y=paste("PCoA 2 (", format(100 * eig[2] / sum(eig), digits=4), "%)", sep=""),       title="bray_curtis PCoA")p + geom_text(aes(x, y, label=rownames(points)))+ theme_classic()

夠亂吧,根本看不清。

geom_text_repel合理位置添加樣品名

library(ggrepel)p + geom_text_repel(aes(x, y, label=rownames(points)))+ theme_classic()

好多了吧!

geom_label_repel合理位置添加標籤

需要調整文字和點不上色,只按標籤背景填充色,代碼如下:

ggplot(points, aes(x=x, y=y)) +geom_point(alpha=.7, size=2) + geom_label_repel(aes(x, y, fill=factor(genotype), label=rownames(points)))+ theme_classic()

另一種上色方式,按標籤背景分組上色,好像選擇樣品看容易,比點著色看的清楚。

現在可以一眼看到異常樣品的位置了。如果還無法確定,可以結合PCA和hculst的聚類結果綜合排除異常樣品。想在此圖中對分組進一步添加置信區間,方便顯示組間是否有差異,以及定義圈外異常樣品,將在過幾天與大家分享。

Reference

官方包下載和教程 https://github.com/slowkow/ggrepel

孫老溼畫圖系列第十一彈丨標籤遮蓋處理工具ggrepel http://baijiahao.baidu.com/s?id=1576516080050548076&wfr=spider&for=pc

R語言可視化學習筆記之ggrepel包 https://mp.weixin.qq.com/s/ZKxzKZ4NBTcsJ6vFimxoGA?scene=25#wechat_redirect

猜你喜歡寫在後面

宏基因組公眾號經過半年發展,原創文章過百,關注人數12000+。為鼓勵讀者交流、快速解決科研困難,我們建立了「宏基因組」專業討論群,目前己有國內外100+ PI,900+ 一線科研人員加入。參與討論,獲得專業解答,歡迎分享此文至朋友圈,並掃碼加主編好友帶你入群,務必備註「姓名-單位-研究方向-職稱/年級」。技術問題尋求幫助,首先閱讀《如何優雅的提問》學習解決問題思路,仍末解決群內討論,問題不私聊,幫助同行。

學習16S擴增子、宏基因組科研思路和分析實戰,關注「宏基因組」

相關焦點

  • R包ggrepel解決散點圖樣品標籤重疊,方便篩選樣品
    而在樣品比較、樣品篩選時又必須看清這些點名字,用於篩選掉一些記錄錯誤、未報抗生素使用或隱性疾病等異常樣品。ggplot2的輔助包ggrepel就是專門處理遮蓋問題的專家。有了人類可讀的可視化結果,在我們下遊分析、樣品篩選、異常樣品鑑定更加方便高效。
  • R語言 | R語言繪製抖動散點圖和蜂群圖
    在上述示例中,每種藥物治療組中只有10個個體(樣本),這樣直接豎直排列散點還是比較清晰的。不過不難想到,當樣本數量非常多的時候,散點圖中可能會出現大量的重疊,甚至連成一條線的情況,很難區分每一個點的位置,此時將對觀察數據分布產生困擾(如本文一開始展示的那個散點圖,由於樣本很多導致點的重疊很嚴重,很難直接觀察數值分布)。
  • R繪圖之散點圖:9氣泡圖的繪製
    氣泡圖其實是在散點圖的基礎上進行改造的,在原有的橫縱坐標變量的基礎上,引入第三個變量,用氣泡的大小來表示,因此被稱為氣泡圖,還可以引入第四個變量用氣泡的顏色表示。#用ggplotcorr繪製相關係數熱圖library(ggcorrplot)data(mtcars)corr <- round(cor(mtcars),1)ggcorrplot
  • Python學習第90課-數據可視化之散點圖繪製
    今天我們學習散點圖,在統計學或者機器學習方面,或者在金融風險控制方面,金融風險控制經常要看異常交易、信貸風險,做這樣的分析就要用到一個圖--散點圖(scatter plot)。下面我們假設繪製一個散點圖需要的數據如下:x=[1,2,3,4,5,6,7,8,9,10]y=[2,5,3,1.6,4.3,5.8,6.2,7.5,8.1,9]根據之前學習繪製折線圖、柱狀圖、直方圖的經驗,我們可以總結出規律:用Python的matplotlib繪製圖形,就是plt.後面跟上要繪製的圖形的英文單詞的縮寫,或者截取該英文單詞的一部分作為一個函數
  • 散點圖、箱線圖、核密度函數……數據分析必備的9種可視化圖表
    散點圖這是一種將兩個連續變量之間的關係可視化的完美圖表。通過散點圖來分析萼片長度和萼片寬度的關係。注意,必須旋轉x標籤,不這樣做標籤的名稱會相互重疊。柱狀圖柱狀圖對於任何連續變量來說都是一個完美的可視化技術。讓我們從簡單的hist函數開始。
  • R繪圖之ggplot2-散點圖(一)
    上次我們簡單的介紹了ggplot2的做圖基礎,並介紹了如何調整參數,設置分組並添加線性擬合,那麼今天大家跟著圖圖一起來系統的學習一下散點圖的製作
  • 擒賊先擒王 52gg《龍騎三國》射人先射馬
    所謂:擒賊先擒王,樹倒猢猻散。民間有「打蛇要打七寸」的說法,也是這個意思,蛇無頭不行,打了蛇頭,這條蛇也就完了。所以在52gg《龍騎三國》中也同樣是如此,只有使敵方陷於混徹底瓦解的謀略,才能獲取最終的勝利!龍騎三國玩家交流群:513785346
  • Facebook正式推出實驗性拼貼製作應用E.gg
    Facebook內部研發小組NPE團隊周三正式向更多用戶推出了最新應用E.gg。這款應用是一款被描述為「數字雜誌創作者」和「GIF拼貼大禮包」的自由形式創作工具,在今年早些時候就已經公布,但直到現在才通過候選名單招募用戶。今天,它已經可以在App Store中供任何人下載。
  • 阿斯利康Lokelma(環矽酸鋯鈉散)美國標籤更新,納入...
    2020年04月28日訊 /生物谷BIOON/ ---阿斯利康(AstraZeneca)近日宣布,美國食品和藥物管理局(FDA)已批准其新型口服降鉀藥物Lokelma(利倍卓®,通用名:sodium zirconium cyclosilicate,環矽酸鋯鈉散)標籤更新,納入一種專門用於治療接受慢性透析的終末期腎病
  • 超高頻射頻識別標籤靈敏度的測試方法及解決方案
    其中尤其是標籤,處於競爭激烈的中心。射頻識別標籤單價較低,但是用量很大,對於設計製造就要求更高。由於標籤設計技術和生產工藝的缺陷和不穩定,就必須由性能測試來把關。  而這個標籤靈敏度測試由於是非接觸射頻測量,又有各種技術問題需要克服。本文著重介紹其中的方法理論和實踐情況。
  • 《最強蝸牛》gg修改器攻略 gg修改器怎麼用
    導 讀 最強蝸牛gg修改器是一款非常實用的修改工具,可以幫助大家獲得更多的道具,而且這款軟體完全免費,使用也非常簡單
  • 散點圖應用場景,以及步驟
    這時候,如果來個散點圖,效果會好很多。上面圖表,可以看這些點分布在哪個區間,如果集中在右上,則說明,內容選的好,老師也講得好,如果集中在左下,則說明內容選擇不好,老師也講得不好。那麼這種圖表是如何做出來的?
  • Facebook正式推出實驗性拼貼製作E.gg 可供任何人下載
    原標題:Facebook正式推出實驗性拼貼製作應用E.gg   Facebook內部研發小組NPE團隊周三正式向更多用戶推出了最新應用E.gg。這款應用是一款被描述為「數字雜誌創作者」和「GIF拼貼大禮包」的自由形式創作工具,在今年早些時候就已經公布,但直到現在才通過候選名單招募用戶。
  • 萬國覺醒無限金幣鑽石GG修改器使用教程,還怕幹不過氪金玩家嗎?
    遊戲中氪金點眾多,這也是為什麼很多平民玩家不推薦玩的原因,但小編找到了萬國覺醒gg修改器便可以很好地解決氪金這一問題了,很多小夥伴可能還不知道萬國覺醒gg修改器是什麼,下面小編就來詳細跟大家說一下使用教程。
  • 安徽省質監局發布蛋製品、方便食品等42類產品抽檢通報
    為加強對安徽省生產加工環節食品生產企業的監管,近日,省質監局組織對全省蛋製品、方便食品、白酒、掛麵等42類產品進行了監督抽查。此次共抽取1536組樣品,經檢驗合格1504組,不合格32組,總體合格率97.9%,具體情況如下。  一、蛋製品  本次監督抽查共抽取樣品37組,合格36組,不合格1組,合格率為97.3%。
  • 安邦定國陳靖仇 52gg《軒轅劍》走進心中的神聖英雄
    今天我就為大家講解一下我們52gg《軒轅劍》中文質彬彬的陳靖仇。這個人物在接下來玩家選擇陣容時非常有用,下面就來看看它吧!軒轅劍玩家交流群 538077089 52gg《軒轅劍之天之痕》中陳靖仇職業是一個劍士。