R繪圖筆記 | 箱形圖的繪製

2021-03-02 生物信息雲

參考前文:R繪圖筆記 | R語言繪圖系統與常見繪圖函數及參數

關於繪圖圖,前面介紹了一些:

R繪圖筆記 | 一般的散點圖繪製

R繪圖筆記 | 柱狀圖繪製

R繪圖筆記 | 直方圖和核密度估計圖的繪製

R繪圖筆記 | 二維散點圖與統計直方圖組合

R繪圖筆記 | 散點分布圖與柱形分布圖

這裡介紹箱形圖的繪製,這些圖形在文章中是很常見的,也是必須要掌握的。比如下圖中的E圖(來自文獻:DOI: 10.1002/jcp.30015 )

一.讀入數據

如果你想獲取該數據用於自己練習,下面是獲取數據的地址:

https://docs.qq.com/sheet/DV0dxREV1YkJ0ZmVj

數據格式是這樣的。

數據第A列是病人ID,B~E列是臨床信息,其他列是病人的RNAseq數據。

你可以保存副本導出,然後自己讀入。

library(ggplot2)library(RColorBrewer)library(SuppDists) 

data <- read.csv("BioInfoNotesData1.csv",row.names = 1)

假如我們需要繪製某基因在不同分期的表達情況。

f1.data <- data[,c(1,5)]colnames(f1.data) <- c("Stage","Value")summary(f1.data$Stage)

summary(f1.data$Stage)        N   Stage I  Stage II Stage III  Stage IV        11        75       176       128        64

先檢查數據是否有缺失值,分期信息不知用N來表示,可以刪除這些數據。

f1.data<-f1.data[f1.data$Stage!="N",]head(f1.data)

BioinfoNotes>head(f1.data)                    Stage ValueTCGA-3L-AA1B-01   Stage I  7.04TCGA-4N-A93T-01 Stage III  7.23TCGA-4T-AA8H-01  Stage II  6.61TCGA-5M-AAT4-01  Stage IV  7.56TCGA-5M-AAT6-01  Stage IV  4.99TCGA-5M-AATE-01  Stage II  7.41

二.繪圖

1.帶誤差線的箱形圖

繪製箱型圖用geom_boxplot函數。

geom_boxplot(mapping = NULL, data = NULL, stat = "boxplot",  position = "dodge2", ..., outlier.colour = NULL,  outlier.color = NULL, outlier.fill = NULL, outlier.shape = 19,  outlier.size = 1.5, outlier.stroke = 0.5, outlier.alpha = NULL,  notch = FALSE, notchwidth = 0.5, varwidth = FALSE, na.rm = FALSE,  show.legend = NA, inherit.aes = TRUE)

notch參數:如果為假(默認),則製作標準盒圖。如果為真,做一個缺口盒圖。凹槽用來比較組;如果兩個盒子的凹槽不重疊,說明中位數有顯著差異。

notchwidth參數:如果指定notch參數為TRUE的話,指定切口寬度,默認0.5。

varwidth參數:如果為假(默認),則製作標準盒圖。如果為真,那麼方框的寬度將與組中觀察值的平方根成正比。

ggplot(f1.data, aes(Stage, Value))+  geom_boxplot(aes(fill = Stage),notch = FALSE)+  scale_fill_manual(values=c(brewer.pal(8,"Set2")[c(3,6,7,8)]))+  theme_classic()+ ylab("The expression level")+  theme(panel.background=element_rect(fill="white",colour="black",size=0.25),        axis.line=element_line(colour="black",size=0.25),        axis.title=element_text(size=13,face="plain",color="black"),        axis.text = element_text(size=12,face="plain",color="black"),        legend.position="none"  )

將notch改為TRUE。

ggplot(f1.data, aes(Stage, Value))+  geom_boxplot(aes(fill = Stage),notch = TRUE)+  scale_fill_manual(values=c(brewer.pal(8,"Set2")[c(3,6,7,8)]))+  theme_classic()+ ylab("The expression level")+  theme(panel.background=element_rect(fill="white",colour="black",size=0.25),        axis.line=element_line(colour="black",size=0.25),        axis.title=element_text(size=13,face="plain",color="black"),        axis.text = element_text(size=12,face="plain",color="black"),        legend.position="none"  )

ggplot(f1.data, aes(Stage, Value))+  geom_boxplot(aes(fill = Stage),notch = TRUE,varwidth = T)+  scale_fill_manual(values=c(brewer.pal(8,"Set2")[c(3,6,7,8)]))+  theme_classic()+ ylab("The expression level")+  theme(panel.background=element_rect(fill="white",colour="black",size=0.25),        axis.line=element_line(colour="black",size=0.25),        axis.title=element_text(size=13,face="plain",color="black"),        axis.text = element_text(size=12,face="plain",color="black"),        legend.position="none"  )

2.箱型與抖動散點組合圖

有時候,數據量大,我們需要顯示每一個數據點,可以很直觀的看到數據的分布情況。在文章中這種圖是很常見的。我們只需要在上面的箱形圖中加入geom_jitter函數就可以啦。

ggplot(f1.data, aes(Stage, Value))+  geom_boxplot(aes(fill = Stage))+  geom_jitter(binaxis = "y", position = position_jitter(0.3),stackdir = "center",dotsize = 0.4)+  scale_fill_manual(values=c(brewer.pal(7,"Set3")[c(1,3,5,7)]))+  theme_classic()+   labs(x='Stage',y='The expression level',title='Gene name')+   theme(panel.background=element_rect(fill="white",colour="black",size=0.25),        axis.line=element_line(colour="black",size=0.25),        axis.title=element_text(size=13,face="plain",color="black"),        axis.text = element_text(size=12,face="plain",color="black"),        legend.position="none"  )

參考資料:

R語言數據可視化之美,張杰/著

geom_boxplot函數幫助文檔

相關焦點

  • excel如何畫箱形圖 EXCEL箱形圖繪製圖文教程
    excel如何畫箱形圖 EXCEL箱形圖繪製圖文教程時間:2018-03-31 14:04   來源:系統天堂   責任編輯:沫朵 川北在線核心提示:原標題:excel如何畫箱形圖 EXCEL箱形圖繪製圖文教程 excel如何畫箱形圖?
  • Python繪圖筆記:繪製有趨勢線的直方圖、小提琴圖和誤差圖
    1.小提琴圖和箱線圖#同時繪製箱線圖和小提琴圖,箱線圖清楚地展示了所繪製的數據集中的四分位數和離群點#小提琴圖則清晰展示了數據集中的分布情況import matplotlib.pyplot as pltimport numpy as np#生成圖紙,繪製一行兩列兩個子圖,圖紙的尺寸設置fig,axes=plt.subplots(nrows=1,ncols=2,
  • Python學習筆記:繪製極坐標圖和散點圖的繪製與保存
    1.簡單極坐標圖#導入繪製極圖所需要的包import matplotlib.pyplot as pltimport numpy as np#設置下面所需要的參數barSlices = 12#theta指每個標記所在射線與極徑的夾角,下面表示均分角度theta = np.linspace(0.0
  • Python繪圖筆記:繪製等高線圖和交叉區域圖
    繪製等高線圖import numpy as npimport matplotlib as mplimport matplotlib.pyplot as plt#定義x,(CS)#繪製標題plt.title('My function:$z=(1-x^2+y^2)e^{-(y^3)/3}$')plt.show()
  • R繪圖(10)之火山圖
    一般火山圖的繪製,反映了樣本中以兩個參量設定閾值後篩選出的樣本點的情況,一般用於測序後,差異基因的篩選。
  • 箱形圖、小提琴圖、直方圖……統統可以卡通化!
    分布族這是一個幸福的大家庭——箱形圖、直方圖、小提琴圖、箱形圖。雖然它們長相各異,但如果深入了解,你就會發現每種圖形都以相似的方式揭示數據集的構成。來認識一下箱形圖Borat和Wanda(不過Wanda更喜歡別人叫她盒須圖)。他們在一次蹦床聚會上相遇,Wanda在蹦床上彈跳時,突然丟失了一個異常值,這個異常值砸到了Borat頭上。Borat把異常值還給了Wanda,然後他們就在一起了。箱形圖喜歡蹦床,所以它們總是出現在x軸的高處和低處。
  • MATLAB繪圖之旅
    歡迎大家關注「本碩博Matlab工作坊」或者微信搜索「MATLABAtelier」進行關注MATLAB繪圖之旅本文封面有一個花瓶,這個正是Matlab的強大繪圖功能,本文會在末尾附上MATLAB代碼供大家學習。
  • Origin繪圖:XRD斜方層疊圖繪製方法
    XRD斜方層疊圖怎麼刪除多餘框線?今天譚編輯嘗試各種解決方法,結果如何?在「編輯之譚」上一期「多條曲線的層疊圖」(可以點擊公眾號下方菜單「神操作」-「Origin繪圖」中查閱往期文章)中提到,可以利用Waterfall繪製斜方層疊圖,前文說可以關閉Grid和Y軸Z軸的顯示,但沒有實際操作。
  • 繪圖技巧 | 繪圖主題-高效繪製定製化可視化作品
    有很多小夥伴經常私信給小編,問自己繪製的圖表為啥沒小編繪製的精美? 聽到這句話,小編老臉一紅,還是比較慚愧的,因為並不是像小夥伴說的那樣對每一個圖表元素都進行定製化設計操作,是藉助優秀的「第三方工具」的。而這第三方工具就是本篇推文的重點-繪圖主題(Themes)。
  • 我的繪圖工具箱
    文本繪圖文本繪圖的好處在於修改、存儲方便,很簡單即可繪製出固定模式的圖,如時序圖、架構圖、部署圖、線框圖、甘特圖、WBS與思維導圖。 PlantUML[1] 是一個支持文本繪製類UML圖的工具,可以在 Real World Plantuml[2] 找到很多用它實現的圖。我一般用它來繪製以下一些圖。
  • excel如何畫箱形圖? 手把手教你如何利用Excel畫箱形圖
    excel如何畫箱形圖? 手把手教你如何利用Excel畫箱形圖時間:2018-04-08 11:32   來源:系統天堂   責任編輯:沫朵 川北在線核心提示:原標題:excel如何畫箱形圖? 手把手教你如何利用Excel畫箱形圖 excel如何畫箱形圖?
  • R-Python 基礎圖表繪製-核密度估計圖
    作者:寧海濤 來源:DataCharm前面介紹了基礎直方圖的繪製教程,接下來,同樣分享一篇關於數據分布的基礎圖表繪製-核密度估計圖。具體含義我們這裡就不作多解釋,大家可以自行百度啊,這裡我們主要講解R-python繪製該圖的方法。
  • R語言之plot繪圖函數的使用
    R有強大的繪圖功能,plot()函數是一種常用的繪圖函數,用其可以繪製散點圖、曲線圖等。plot函數的語法格式R語言中plot()函數的基本格式如下:plot(x,y,...)plot函數中,x和y分別表示所繪圖形的橫坐標和縱坐標;函數中的...為附加的參數。
  • 微課|R基礎繪圖:折線圖
    繪製平滑曲線圖.把圖例繪製放到圖像外面.2006-2015年我國出口牛肉和豬肉總量, .數據來源:國家統計局.44.32,80.6,119.59,109.09,61.21,95.5,79.32,64.16),  豬肉=c(322.24,422.69,325.39,295.04,    326.1,332.01,262.72,275.65,283.75,400.88  ))data1=as.data.frame(scale(dat))ts <- seq(2006,2015)DT::datatable(data.frame(年份=ts,dat))下面的繪圖代碼已經對繪製折線圖的基礎代碼進行了許多修改
  • 地圖可視化繪製 | R-cartography 藝術地圖繪製
    本期推文我們介紹一個可以繪製頗具「藝術」風格地圖的可視化包-cartography,主要涉及的內容如下:R-cartography 簡介說到cartography包,用Python繪圖的小夥伴可能會想到cartopy(Basemap的下一代地圖可視化繪製包),下面就簡單介紹下
  • plt.xxx()與 ax.xxx() | xarray 繪圖可視化(2)
    尤其是在多個子圖(figures/axes)的繪製過程中,因每一子圖都分配了一個ax,而不會迷茫當前哪一個子圖是活動的。這即ax.xxx()稱為面向對象繪圖的原因。活動這個詞是來自於 MATLAB 中 gca(返回當前 axes (坐標圖)對象的句柄)的用法。下面用兩句 MATLAB 代碼說明其原理。首先繪製一條直線。
  • R繪製氣泡圖——幾步搞定!
    氣泡圖可用於顯示元回歸的結果。今天,小編簡單給大家介紹下用R繪製氣泡圖的方法。首先,打開R軟體,在交互界面輸入library(meta),就加載好meta包了。sd.c,data=Fleiss93cont, sm="MD")mr1 <- metareg(meta1, region)mr1bubble(mr1)這樣就畫出來簡單的氣泡圖
  • Excel繪圖系列:雷達圖繪製
    之前,我們的推文中講過用R繪製雷達圖,很多小夥伴可能覺得輸入代碼麻煩。那麼,不妨試試用Excel來繪圖。首先,我們準備一組數據,如下圖所示接著,我們選中上面給出的兩行數據,在菜單欄中選擇插入,點擊「推薦的圖表」,如下圖所示然後,我們在彈出的頁面選擇所有圖表,選擇雷達圖成功繪製出雷達圖想要更改一些設置(如名稱
  • R語言繪圖基礎|直方圖和散點圖怎麼畫?
    作者:丁點helper來源: 丁點幫你前面2篇R語言相關的文章以鐵達尼號的數據為例,介紹了描述性統計中用到的計算操作,以及柱形圖的繪製操作。今天我們繼續聊聊如何在R中繪製直方圖和散點圖。繪製直方圖仍使用titanic.csv這個數據。
  • 寫讀書筆記與思維導圖製作和運用
    思維導圖是一種可視化的思維工具,能夠幫助學生把思維的認識過程用圖形的方式可視化地表徵出來。 思維導圖的手工繪圖法採用手工繪圖法,需要準備繪圖材料:筆和紙。其繪圖步驟簡單概括如下:1、使用彩筆,在空白畫紙中央繪製主題內容;2、依次向中心主題四周發散延伸二級主題;3、在二級主題節點處,根據內容可以繼續延伸下級主題;4、使用不同顏色的彩筆,完善各個分支內容。 下面是手繪思維導圖舉例1.   先把紙張橫過來放,這樣寬度比較大一些。