R語言統計與繪圖:繪製蜜蜂圖

2022-01-07 R語言統計與繪圖

本文作者蔣劉一琦,自嘲是一個有藝術追求的生信狗,畢業於浙江大學生物信息學專業,目前在復旦大學就讀研究生,研究方向為宏基因組。

在生物信息領域我們常常使用R語言對數據可視化。在對數據可視化的時候,我們需要明確想要展示的信息,從而選擇最為合適的圖突出該信息。

本系列文章將介紹多種基於不同R包的作圖方法,希望能夠幫助到各位讀者。

1. 什麼是蜜蜂圖

不知道蜜蜂圖的名字從何而來,我猜測可能是因為畫這個圖的包叫做beeswarm?我們先來看看蜜蜂圖長什麼樣。

Beeswarm

看上去和我們之前的點圖很像,我們可以直觀來比較一下beeswarm和ggplot中使用jitter及point(默認參數)繪製同一組關於乳腺癌數據的圖:

從中可以發現,beeswarm很好的體現了數據的分布,更加清楚、直觀。而後兩者,難以快速獲取信息,point圖中點過於密集,jitter中分布過於散亂。這也是很多科學論文選擇beeswarm圖的原因。

在小樣本下,也許jitter或者point方法也能夠傳達我們想要傳遞的信息,但是在樣本量較大的時候,這兩個繪圖方法就不太適合了。

而beeswarm圖在大樣本的情況下也能使用。不僅可以體現每一個樣本具體情況,而且能夠查看整體的情況。

2. 怎麼繪製蜜蜂圖

本次作圖使用兩個不同的包,之所以如此,是因為比較常見的製作蜜蜂圖的包就叫做"beeswarm",但是它和ggplot的作圖習慣略有差別。

鑑於之前都是利用ggplot作圖,所以也講解另一個基於ggplot的名叫ggbeeswarm的包。

Note:沒有安裝相關R包的,先安裝R包

2.1 需要什麼格式的數據

本次使用的是beeswarm包中的breast數據。

install.packages("beeswarm")
library(beeswarm)
data(breast)

breast數據

共有286個樣本,具體所表示的信息如下:

ER:Estrogen receptor status (factor with levels neg, pos).
ESR1 # Expression of the ESR1 gene (numeric).
ERBB2 # Expression of the ERBB2 gene (numeric).
time_survival # Time in months (numeric).
event_survival # Coded event: 0 = censored, 1 = metastasis (numeric).

2.2 使用beeswarm包繪圖
beeswarm(time_survival ~ ER, data = breast,
         pch = 16, pwcol = 1 + as.numeric(event_survival),
         xlab = "", ylab = "Follow-up time (months)",
         labels = c("ER neg", "ER pos"))
legend("topright", legend = c("Yes", "No"),
       title = "Censored", pch = 16, col = 1:2)

可以看到不像ggplot給具體的x=,y=,該包使用公式:舉例:p~ grp,那麼就相當於x為grp,y為p。另外,其修改圖諸多細節的方式也不一致。

pch是選擇點的樣式,不同的數字代表實心圓、空心圓、三角形、倒三角形等等。

pwcol是用來設置顏色,可以看到這裡+1原因是event_survival中含有0值,如果不加1,則顯示為無色,即查看不到這些樣本。

labels用來修改x軸標籤,然後使用legend功能添加圖例。

2.3 ggbeeswarm包繪圖
install.packages("ggbeeswarm")
library(ggplot2)
library(ggbeeswarm)
ggplot(breast,aes(x=ER,y=time_survival)) +
        geom_beeswarm(aes(color=factor(event_survival)),cex=1.5)+#cex用於設置點的密集程度
        theme_bw() +
        theme(legend.position = c("top"),
                panel.grid = element_blank()) +
        scale_color_manual(values=c("Black","Red"),name="Censored",labels=c("Yes","No"))+
        scale_x_discrete(labels=c("ER neg","ER pos")) +
        xlab("")+
        ylab("Follow-up time (months)")

本文作者蔣劉一琦,轉載自優雅R。

相關焦點

  • R語言繪製條形圖
    作者:吳健 中國科學院大學 R語言、統計學愛好者,尤其擅長R語言和Arcgis在生態領域的應用分享個人公眾號:統計與程式語言
  • R語言繪圖--PCA圖
    R語言是一門專門針對統計繪圖等需求設計的程式語言,在R語言中,內置了PCA分析的函數prcomp。直接調用這個函數可快速針對一組數據進行PCA分析。配合ggplot2等繪圖包,可以方便的生成PCA分析可視化結果。以下是以一個真實數據集為例,為大家演示如何繪製PCA圖--該數據共包含300個樣品的轉錄本表達量數據。
  • 手把手教學,R語言基礎繪圖
    R語言是用於統計分析、繪圖的語言和操作環境。R的統計分析能力突出,有強大的數據展示能力。
  • R語言中使用par函數在同一繪圖區中繪製多幅圖
    par函數概述在R繪圖時,有時我們想在一個繪圖區中同時繪製多幅圖。在R語言中可以有多個函數來實現此要求。這裡先介紹一下繪圖參數par函數的使用。R中的par()函數可以將繪圖區分割成規則的幾個部分。多圖環境用參數mfrow或參數mfcol來設定,如:par(mforw=c(3,2))則是在同一繪圖區中繪製3行2列共6個圖形,而且是先按行繪製,即繪製完第1行的2個圖形後,再繪製第2行的2個圖形,最後是第3行的2個圖形。
  • R語言學習 - 熱圖繪製 (heatmap)
    收錄於話題 #R統計和作圖> data2 <- read.table(text=txt,sep=";", header=T, row.names=1, quote="", check.names = F)> head(data2)       Zygote 2_cell 4_cell 8_cellGene_1    1.0    2.0    3.0
  • R語言繪圖之ggplot2
    那麼今天我們就為大家介紹一下目前在R語言中流行的繪圖包ggplot2。1. ggplot2的安裝:install.packages("ggplot2")。2. ggplot2的繪圖原理: ggplot2的核心理念是將繪圖與數據分離,數據相關的繪圖與數據無關的繪圖分離,並按圖層作圖。
  • ComplexHeatmap |理解繪圖邏輯繪製熱圖
    之前熱圖三部曲介紹了使用ggplot2和pheatmp繪製熱圖R語言學習 - 熱圖繪製 (heatmap)  R語言學習 - 熱圖美化  R語言學習 - 熱圖簡化後來2017年最後學習1010個熱圖繪製方法簡略介紹了10種熱圖繪製方式,CIRCOS增加熱圖、點圖、線圖和區塊屬性是另一種形式的熱圖。
  • R語言——ggplot2的繪圖邏輯
    在R語言裡,談及繪圖,ggplot2是最出名的繪圖包之一,作為一個繪圖神器,它提供了許許多多的功能給用戶使用,僅用短短幾行代碼,一幅幅高端大氣的圖像便躍然紙上,這可能就是ggplot2包的魅力所在。,    #ggplot2繪圖                         y=Sepal.Width))+        #繪製底層畫布                         geom_point(color = "darkred")    #在畫布上添加點從上述代碼可以看出,ggplot繪圖有以下兩個特點:(1)有明確的開始
  • 123.R簡介和統計繪圖
    本文教程的原始碼見123R簡介和統計繪圖.Rmd,實戰代碼詳見R.Rmd。為什麼要學習R圖. R常用圖形 https://www.r-graph-gallery.com/為什麼選擇R?多領域的資源, CRAN收錄16170個R包 (20年9月1日),涵蓋了統計學、經濟學、生態學、進化生物學、生物信息學、物理、化學等多學科。
  • R語言繪圖基礎|直方圖和散點圖怎麼畫?
    作者:丁點helper來源: 丁點幫你前面2篇R語言相關的文章以鐵達尼號的數據為例,介紹了描述性統計中用到的計算操作,以及柱形圖的繪製操作。今天我們繼續聊聊如何在R中繪製直方圖和散點圖。繪製直方圖仍使用titanic.csv這個數據。
  • R語言中繪製條形圖的函數:barplot
    在實際中,條形圖主要有簡單條形圖,組合條形圖和堆疊條形圖。在R語言的基礎包中可以使用barplot()函數來繪製條形圖。主要參數的含義如下:height:向量或矩陣,用來構成條形圖中各條的數值。names.arg:位於條低端的文字標籤。beside: 邏輯值,為FALSE時繪製堆疊圖,為TRUE時繪製分組圖。
  • R語言繪圖4-散點圖(並繪製回歸曲線)
    散點圖算是我們最常用的,今天學一下如何繪製散點圖以及添加回歸曲線,並標註方程與R平方。首先來看一下結果展示:圖1 散點圖圖2 添加回歸曲線圖3 添加圖例繪製代碼及數據:##繪製散點圖(基因大小與基因數目):####@微信公眾號:地理札記##getwd()m <- read.table
  • R語言繪製流程圖(一)
    作者:吳健 中國科學院大學 R語言、統計學愛好者,尤其擅長R語言和Arcgis在生態領域的應用分享個人公眾號:統計與程式語言
  • R語言可視化學習筆記之ggridges包繪製山巒圖
    作者:嚴濤 浙江大學作物遺傳育種在讀研究生(生物信息學方向)偽碼農,R語言愛好者,愛開源。
  • 【R語言】--- graphics包的barplot()函數繪製柱狀圖
    柱狀圖又叫條形圖,是數據展示最重要的一類統計圖,數據分析結果展示中使用頻率非常高,各類統計軟體均能繪製。在R語言中,有很多包可繪製柱狀圖,比如graphics包barplot()函數和ggplot2包geom_bar()函數。 本文介紹graphics包的barplot()函數繪製柱狀圖。
  • R語言之plot繪圖函數的使用
    R有強大的繪圖功能,plot()函數是一種常用的繪圖函數,用其可以繪製散點圖、曲線圖等。plot函數的語法格式R語言中plot()函數的基本格式如下:plot(x,y,...)主要參數的含義如下:(1)type為一個字符的字符串,用於給定繪圖的類型,可選的值如下:"p":繪點(默認值);"l":繪製線;"b":同時繪製點和線;"c":僅繪製參數
  • 如何用R繪製精美的散點圖
    R可以繪製出很棒的統計圖形,之前我們介紹了用R繪製柱狀圖。今天,小編帶著小夥伴們一起來了解下散點圖的繪製。小編自己看代碼的時候也覺得枯燥乏味,看圖片比看代碼輕鬆多了。所以我們先上圖。上圖就是通過R繪製出的散點圖,看起來也很漂亮。那麼,這種散點圖是如何繪製的呢?感興趣的小夥伴就請繼續看下面的代碼。
  • ggstatsplot:R統計繪圖的顏值天花板
    為了更好的分享,作圖丫不定期推薦優秀的公眾號給大家,敬請期待致力於讓更多沒有編程能力的醫學科研人員更便捷的運用網上資料庫資源
  • R語言學習筆記(2)數據處理和基本繪圖
    上節匯總了R語言的基本數據結構以及如何查看數據類型,本期我們將接著學習R中常見的數據處理操作和一些R基本繪圖功能。
  • 使用R語言繪製直方圖
    在本號前面的文章中介紹了R語言中繪製散點圖,折線圖,條形圖,餅圖和箱線圖的方法,有興趣的讀者關注本號後,可以往前看本號的所有文章,本文將介紹在R中繪製直方圖的方法。直方圖概述直方圖(Histogram)又稱柱狀圖,是由一系列高度不等的縱條紋或線段表示的數據分布情況。