第十二講:R作圖-ggplot2繪製箱式圖

2021-03-02 投必得醫學

在「R作圖」專輯中,我們將向大家介紹常見圖形的R作圖方法以及對應代碼解釋,幫助大家輕鬆理解和學習R作圖技巧。

這一講,我們將介紹如何用ggplot2軟體包中的函數geom_boxplot()繪製複雜箱式圖。

函數geom_boxplot()簡化格式為:

geom_boxplot(outlier.colour="black", outlier.shape=16,             outlier.size=2, notch=FALSE)

·Outlier.colour, outlier.shape, outlier.size:分別表示離群點的顏色,形狀和大小。

·notch:邏輯值。如果為TRUE,則繪製一個缺口箱式圖。缺口在中位數及其置信區間,該置信區間通常基於中位數+/- 1.58 * IQR / sqrt(n)。缺口用於比較組;如果兩個箱式的缺口不重疊,則有力證明中位數不同。


使用R內置的ToothGrowth數據集:

ToothGrowth$dose<-as.factor(ToothGrowth$dose)head(ToothGrowth)

輸出結果

   len supp dose 1  4.2   VC 0.5 2 11.5   VC  0.5 3  7.3   VC 0.5 4  5.8   VC 0.5 5  6.4   VC 0.5 6 10.0   VC 0.5

確保使用上述R腳本將變量劑量轉換為因子變量。

library(ggplot2)# 基本箱式圖,將基本箱式圖保存在p中p<-ggplot(ToothGrowth, aes(x=dose, y=len))+  geom_boxplot() #表示對ggplot()函數中繪圖內容進行geom_boxplot()函數運算p #列印基本箱式圖,即輸入p# 轉置箱式圖p+coord_flip()# 繪製缺口箱式圖ggplot(ToothGrowth, aes(x=dose, y=len))+  geom_boxplot(notch=TRUE)# 更改離群值的顏色、形狀和大小ggplot(ToothGrowth, aes(x=dose, y=len))+  geom_boxplot(outlier.colour="red", outlier.shape=8,                outlier.size=4)

函數stat_summary()可用於向箱式圖添加均值:

# 添加箱式圖的均值p+stat_summary(fun.y=mean, geom="point", shape=23, size=4)

選擇要顯示的項目:僅顯示x軸dose為0.5和2的內容

p+scale_x_discrete(limits=c("0.5", "2"))

可以使用函數geom_dotplot()或geom_jitter()將點添加到箱式圖中:

p+geom_dotplot(binaxis='y', stackdir='center', dotsize=1)p+geom_jitter(shape=16, position=position_jitter(0.2))



箱式圖線顏色可以通過dose的水平改變:

# 根據組別自動更改框線顏色:color=dose,顏色不可選擇p<-ggplot(ToothGrowth, aes(x=dose, y=len, color=dose))+  geom_boxplot()p

也可以使用以下功能手動更改箱式圖的線條顏色:

·scale_color_manual():使用自定義顏色

·scale_color_brewer():使用RColorBrewer包中的調色板(詳情可參看第四講插入連結)

·scale_color_grey():使用灰度調色板

p + scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))p + scale_color_brewer(palette="Dark2")p+scale_color_grey()+theme_classic()


在下面的R代碼中,箱式圖填充顏色由dose水平自動控制:

ggplot(ToothGrowth, aes(x=dose, y=len))+  geom_boxplot(fill='#A4A4A4', color="black")+  theme_classic()p<-ggplot(ToothGrowth, aes(x=dose, y=len, fill=dose))+  geom_boxplot()p

也可以使用以下功能手動更改箱式圖填充顏色:

·scale_fill_manual():使用自定義顏色

·scale_fill_brewer():使用RColorBrewer包中的調色板

·scale_fill_grey():使用灰度調色板

p+scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))p+scale_fill_brewer(palette="Dark2")p+scale_fill_grey()+theme_classic()


p+theme(legend.position="top")p+theme(legend.position="bottom")p+theme(legend.position="none")

參數legend.position的允許值為:「 left」,「 top」,「 right」,「 bottom」。

函數scale_x_discrete可用於將項目順序更改為「 2」,「 0.5」,「 1」:

p+scale_x_discrete(limits=c("2", "0.5", "1"))


# 更改組別更改顏色:fill=suppggplot(ToothGrowth, aes(x=dose, y=len,fill=supp))+  geom_boxplot()# 更改位置:position=position_dodge(1),組別間有間隔p<-ggplot(ToothGrowth, aes(x=dose, y=len, fill=supp))+  geom_boxplot(position=position_dodge(1))p

更改箱式圖的顏色並添加點:

# 更加組別更改顏色:fill=suppggplot(ToothGrowth, aes(x=dose, y=len,fill=supp))+  geom_boxplot()# 更改位置:position=position_dodge(1),組別間有間隔p<-ggplot(ToothGrowth, aes(x=dose, y=len, fill=supp))+  geom_boxplot(position=position_dodge(1))p


# 基本箱式圖,填充灰色(fill=」grey」),labs用於設立標題和軸標題ggplot(ToothGrowth, aes(x=dose, y=len))+  geom_boxplot(fill="gray")+  labs(title="Plot of length per dose",x="Dose (mg)", y="Length")+  theme_classic()# 根據組別自動改變箱式圖顏色bp<-ggplot(ToothGrowth, aes(x=dose, y=len, fill=dose))+  geom_boxplot()+  labs(title="Plot of length  perdose",x="Dose (mg)", y="Length")bp+theme_classic()

手動更改填充顏色:

bp+scale_fill_brewer(palette="Blues")+theme_classic()bp+scale_fill_brewer(palette="Dark2")+theme_minimal()bp+scale_fill_brewer(palette="RdBu")+theme_minimal()

參考內容:Alboukadel Kassambara, GGPlot2 Essentials for Great Data Visualization in R

好了,本期講解就先到這裡。小夥伴們趕緊試起來吧。在下一講中,我們將進行R作圖-ggplot2繪製小提琴圖的講解。歡迎關注,投必得醫學,手把手帶您走入R語言的世界。


快掃二維碼撩客服,

帶你進入投必得醫學交流群,

讓我們共同進步!

↓↓


- END -


長按二維碼關注「投必得醫學」,更多科研乾貨在等你!

相關焦點

  • R與生物專題 |第十三講 R作圖-ggplot2繪製小提琴圖
    # 添加點:geom_dotplot()p+geom_dotplot(binaxis='y', stackdir='center', position=position_dodge(1))# 更改顏色:scale_fill_manual()p+scale_fill_manual(values=c("#999999",
  • 跟著Paper學繪圖:ggplot2繪製曼哈頓圖示例
    曼哈頓圖其實就是某種類型的散點圖而已了。在R中,為GWAS分析或繪製曼哈頓圖量身打造的包還是非常多的,如qqman等。由於這些專業的R包的相關教程網上也有很多,因此也沒必要再介紹它們,可自行了解,本文就單獨演示如何使用ggplot2繪製曼哈頓圖。
  • ggplot2包輕鬆繪製小提琴圖
    對於一個離散型變量,一個連續型變量,有很多作圖方式
  • 第四講 R作圖-基礎-圖形參數設置:調色板
    在「R作圖」專輯中,我們將向大家介紹常見圖形的R作圖方法以及對應代碼解釋,幫助大家輕鬆理解和學習R作圖技巧
  • R與生物專題 | 第八講:R作圖-lattice軟體包繪製各種基本圖
    在「R作圖」專輯中,我們將向大家介紹常見圖形的R作圖方法以及對應代碼解釋,幫助大家輕鬆理解和學習R作圖技巧。
  • 是Excel的圖,不!是R的圖
    R作為可視化的大勢,自然也可以畫出這些圖,有一篇就通過ggplot2包進行了部分總結,甚是有趣,小編復刻學習了一番,現對代碼做簡單注釋,以作分享。關於excel,ppt,你還可以getExcel改變了你的基因名,30% 相關Nature文章受影響,NCBI也受波及推薦 3 個超讚的 EXCEL 插件,讓你 5 分鐘從小白變大神你和PPT高手之間,就只差一個iSlide加載所需工具包library(ggplot2) #作圖包
  • 第三講 R作圖-基礎-圖形參數設置:線條、軸、刻度線、符號
    上一講跟大家介紹了R作圖的一些常見的參數設置:標題、圖例、文字 (第二講 R作圖-基礎-圖形參數設置:標題、圖例、文字),這一講,我們將給大家介紹另外幾種常見參數設置,包括添加線條、軸、刻度線、符號。lty=c(1,2), lwd=c(1, 3))# 例3:為條形圖繪製均數線條set.seed (1234); mydata<-rnorm(200) #隨機建立一個數據hist (mydata, col="lightblue") #為該隨機數據繪製條形分布圖abline (v = mean(mydata), col="red", lwd=3, lty=2) #針對均數繪製垂直圖
  • 邊際分布曲線圖的繪製
    原始數據依照《ggplot2: Guide to Create Beautiful Graphics in R》一書中的方法用rnorm()函數生成的,將數據導入到origin(Origin2017以及之後的版本應該都沒問題)的圖表中,如下。
  • 目前最全的R語言-圖片的組合與拼接
    (100)) # 填充到畫布第1格plot(rnorm(100), type = "l") # 填充到畫布第2格hist(rnorm(500))acf(rnorm(100)) # 填充到畫布第4格pie(c(3, 4, 6), col = 2:4)pie(c(3, 2, 7), col = 2:4 + 3)pie(c(5, 4, 2), col = 2:4 + 6)
  • 也許是時候把excel作圖放在一邊,嘗試一下ggplot2了
    library(ggplot2)library(forcats)Ncon$site <- fct_inorder(Ncon$site)ggplot (Ncon, aes (site, Con, fill=forms))+geom_boxplot (width=0.5, position=position_dodge
  • 高清模板素材,入門級繪製戶型圖的作圖神器
    但戶型圖的用途挺多的。1.對於房地產公司而言,戶型圖就是一種宣傳形式,將自己要出售的戶型通過戶型圖來宣傳給普羅大眾,不論男女老少,大家都能夠明了的了解到。2.對於銷售人員而言,戶型圖除了宣傳作用,更像自己手中的武器,工具,結合戶型圖及模型向顧客解說以便打動顧客,從而實現自己的目標。
  • 答讀者問~R語言ggplot2添加擬合曲線並給指定點添加注釋
    image.png接下來是使用ggplot2畫圖library(ggplot2)ggplot()+  geom_point(data=seed,aes(x=Perimeter,y=Area),             size=5,color="red",alpha=0.3)+  geom_abline(intercept = fitted.model$coefficients[[1]],              slope = fitted.model$coefficients[[2]],              size=2,color
  • jiptest 作圖方法最終更新完成
    但昨晚發了上一篇之後,頭腦有點清醒,太活躍,就借著這個勁把 plot.jip method 繼續寫了,想了想就是把橫坐標軸換了,然後在添加一個按最大值對原始螢光信號進行標準化的功能,基本上就完成了,這樣又刪掉了一個 ggplot2 和 scale 的依賴,這對新手來講會更好一些,少一些依賴,少一些提示,對熟練工來講,自己作圖更方便,即使是喜歡用 ggplot2 也沒關係,那不存在問題,對於喜歡 base
  • ggplot2!!!
    library(ggplot2)library(forcats)Ncon$site <- fct_inorder(Ncon$site)ggplot (Ncon, aes (site, Con, fill=forms))+geom_boxplot (width=0.5, position=position_dodge
  • 利用ggsurvplot快速繪製漂亮的生存曲線圖
    利用ggsurvplot快速繪製漂亮的生存曲線圖>小伍聊生信2017。8.6ggsurvplot安裝最近對生存曲線感興趣,筆者就google了一下,不太喜歡surive包畫的曲線,聽說ggpplot2畫圖不錯,筆者發現這包下面有一個好的畫圖包,ggsurvplot,很好用。
  • R語言_010可視化(箱型圖)
    箱型圖的介紹可以參考很久以前用Python寫的一篇,裡面有原理。點擊跳轉(seaborn_boxplot)。  不想跳轉的這裡簡單說兩句,箱線圖是數據集中的數據分布良好的度量。它將數據集分成三個四分位數。此圖表表示數據集中的最小值,最大值,中值,第一四分位數和第三四分位數。它還可用於通過繪製每個數據集的箱線圖來比較數據集之間的數據分布。
  • Python圖表繪製進階,圖例和標題你真的會添加嗎?一文講透
    為了大家能夠直觀了解,咱們還是慣例,舉個「慄子」吧:看到了嗎,上面就是咱們所編寫的「慄子」程序,上面程序第15行和第16行分別調用plot()函數對曲線進行了疊加顯示,然後在第19行調用legend()函數來顯示圖表的圖例,且在legend()函數中對關鍵字位置參數loc進行了設置,賦值為「lower left
  • 化工設備圖的繪製和閱讀
    一、化工設備圖的繪製繪製化工設備圖一般可通過兩種途徑:一是測繪化工設備,其方法與一般機械的測繪步驟類同;二是設計化工設備,通常以化工工藝藝設計人員提出的「設備設計條件單」為依據,進行設計繪圖。繪製化工設備圖的具體方法和步驟與繪製機械裝配圖基本相似。
  • R語言也可以畫可愛的貓貓了
    無獨有偶,一位R語言軟體開發人員就開發了一個小小的R包,可以在ggplot的圖上畫出小貓咪!速速進入實操部分cat_names中包含的貓咪名字可以在上圖中找到(從左到右一一對應)。3. 開始翻牌:選擇你喜歡的貓咪!