ggplot2包輕鬆繪製小提琴圖

2021-03-02 生信發文助手

對於一個離散型變量,一個連續型變量,有很多作圖方式,包括箱圖,點圖等等

• geom_boxplot() for box plot
• geom_violin() for violin plot
• geom_dotplot() for dot plot
• geom_jitter() for stripchart
• geom_line() for line plot
• geom_bar() for bar plot

今天我們介紹一下小提琴圖

library(ggplot2)data("ToothGrowth")ToothGrowth$dose <- as.factor(ToothGrowth$dose)head(ToothGrowth)

我們先建立一個圖層,以dose為X軸,len為Y軸

e <- ggplot(ToothGrowth, aes(x = dose, y = len))

主要函數及參數

• Key function: geom_violin()
• Alternative function: stat_ydensity()
• Key arguments to customize the plot: alpha, color, linetype, size and fill.

e + geom_violin()e + geom_violin() + coord_flip()e + geom_violin(trim = FALSE, fill = "steelblue")

加統計值

stat_summary() 可以加均值/中位值等

用fun= mean/median加均值/中位值

e + geom_violin(trim = FALSE) +  stat_summary(fun= mean, geom = "point",               shape = 23, size = 2, color = "blue")

加均值及標準差

e + geom_violin(trim = FALSE) +  stat_summary(fun.data="mean_sdl", fun.args = list(mult=1),               geom="pointrange", color = "red")

加框,包含中位數及四分位數

e + geom_violin(trim = FALSE) +  geom_boxplot(width = 0.2)

改變顏色

e + geom_violin(aes(color = dose), trim = FALSE)e + geom_violin(aes(fill = dose), trim = FALSE)

自定義顏色

e2 <- e + geom_violin(aes(color = dose), trim = FALSE) + theme_minimal()e2 + scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))
e3 <- e + geom_violin(aes(fill = dose), trim = FALSE) + theme_minimal()e3 + scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))

添加分組變量

e + geom_violin(aes(fill = supp), trim = FALSE)e + geom_violin(aes(fill = supp), trim = FALSE) +  scale_fill_manual(values=c("#999999", "#E69F00"))

往期推薦:

手把手教你比較兩個模型的預測能力

手把手教你繪製生存曲線

手把手掌握臨床研究的必備繪圖技能:列線圖

手把手教你GoPlot圈圖

手把手教你繪製進階版熱圖

手把手教你學會森林圖繪製

輕輕鬆鬆繪製桑基圖

手把手教你畫雙基因生存曲線

手把手教你畫漂亮的和弦圖(上)

手把手教你畫漂亮的和弦圖(下)

手把手教你做傾向評分匹配

課程推薦

多點好看,少點脫髮

相關焦點

  • 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",
  • 第十二講:R作圖-ggplot2繪製箱式圖
    這一講,我們將介紹如何用ggplot2軟體包中的函數geom_boxplot()繪製複雜箱式圖。如果為TRUE,則繪製一個缺口箱式圖。缺口在中位數及其置信區間,該置信區間通常基於中位數+/- 1.58 * IQR / sqrt(n)。缺口用於比較組;如果兩個箱式的缺口不重疊,則有力證明中位數不同。
  • 跟著Paper學繪圖:ggplot2繪製曼哈頓圖示例
    曼哈頓圖其實就是某種類型的散點圖而已了。在R中,為GWAS分析或繪製曼哈頓圖量身打造的包還是非常多的,如qqman等。由於這些專業的R包的相關教程網上也有很多,因此也沒必要再介紹它們,可自行了解,本文就單獨演示如何使用ggplot2繪製曼哈頓圖。
  • 是Excel的圖,不!是R的圖
    R作為可視化的大勢,自然也可以畫出這些圖,有一篇就通過ggplot2包進行了部分總結,甚是有趣,小編復刻學習了一番,現對代碼做簡單注釋,以作分享。關於excel,ppt,你還可以getExcel改變了你的基因名,30% 相關Nature文章受影響,NCBI也受波及推薦 3 個超讚的 EXCEL 插件,讓你 5 分鐘從小白變大神你和PPT高手之間,就只差一個iSlide加載所需工具包library(ggplot2) #作圖包
  • 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
  • 邊際分布曲線圖的繪製
    小提琴圖是箱型圖和核密度曲線的結合,而邊際分布曲線圖是散點圖和核密度曲線的組合。為了讓圖表展示更豐富的信息,在一種圖表不能滿足時,大家自然想到了圖表的組合。而且,通常來說,這樣的圖表B格也更高。本文主要介紹使用Origin繪製Marginal distributions plots的思路和方法,學習重點是數據的篩選拆分、用多個表格的數據繪製分組圖表,圖層(Layer)的管理。
  • 8 個流行的 Python 可視化工具包,你喜歡哪個?
    本文將介紹一些常用的 Python 可視化包,包括這些包的優缺點以及分別適用於什麼樣的場景。這篇文章只擴展到 2D 圖,為下一次講 3D 圖和商業報表(dashboard)留了一些空間,不過這次要講的包中,許多都可以很好地支持 3D 圖和商業報表。
  • 答讀者問~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
  • 利用ggsurvplot快速繪製漂亮的生存曲線圖
    利用ggsurvplot快速繪製漂亮的生存曲線圖>小伍聊生信2017。8.6ggsurvplot安裝最近對生存曲線感興趣,筆者就google了一下,不太喜歡surive包畫的曲線,聽說ggpplot2畫圖不錯,筆者發現這包下面有一個好的畫圖包,ggsurvplot,很好用。
  • 這裡有8個流行的Python可視化工具包,你喜歡哪個?
    本文將介紹一些常用的 Python 可視化包,包括這些包的優缺點以及分別適用於什麼樣的場景。這篇文章只擴展到 2D 圖,為下一次講 3D 圖和商業報表(dashboard)留了一些空間,不過這次要講的包中,許多都可以很好地支持 3D 圖和商業報表。
  • 4種繪製帶誤差線的柱形圖
    今天的推送主要解決不同方式下的柱形圖可視化,當然主要要使用python。R真香。柱形圖繪圖的方式,有需要挑自己喜歡的用。以下數據使用參考資料中的示例數據。比如下面的兩種方式:import numpy as np arr = [3, 6, 4]#求標準差arr_std = np.std(arr,ddof=1)print("標準差為:%f" % arr_std)R ggplot2# 測試數據tg <- ToothGrowth# 轉換為因子類型
  • R語言從入門到精通:Day8-圖形繪製
    圖2:函數par(),參數mfrow的實例2  參數mfcol的使用是類似的,就不重複舉例了。  圖7:堆砌條形圖和分組條形圖  為了方便大家重複圖形繪製過程,上面圖形中展示的數據都是來自包vcd,大家在運行代碼前安裝vcd包即可。
  • 也許是時候把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
  • 繪製manhanttan圖
    曼哈頓圖(manhattan plot),是一種類似曼哈頓摩天大樓排列的一種展示圖。如下圖所示。
  • R與生物專題 | 第八講:R作圖-lattice軟體包繪製各種基本圖
    在「R作圖」專輯中,我們將向大家介紹常見圖形的R作圖方法以及對應代碼解釋,幫助大家輕鬆理解和學習R作圖技巧。