ggplot2包輕鬆繪製小提琴圖

2021-02-20 生信發文助手

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

• 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作圖-ggplot2繪製小提琴圖
    通常,小提琴圖也包括數據中位數和四分位數範圍等箱式圖的內容 。函數geom_violin()用於生成小提琴圖。library(ggplot2)p<-ggplot(ToothGrowth, aes(x=dose, y=len))+geom_violin()p# 圖形翻轉p+coord_flip()# 將修剪trim參數設置為FALSEggplot(ToothGrowth, aes(x=dose, y=len))+geom_violin(
  • 第十二講:R作圖-ggplot2繪製箱式圖
    這一講,我們將介紹如何用ggplot2軟體包中的函數geom_boxplot()繪製複雜箱式圖。如果為TRUE,則繪製一個缺口箱式圖。缺口在中位數及其置信區間,該置信區間通常基於中位數+/- 1.58 * IQR / sqrt(n)。缺口用於比較組;如果兩個箱式的缺口不重疊,則有力證明中位數不同。
  • ggplot2 | 使用ggplot2工具包繪製地圖
    ggplot2工具包用於繪製地圖的有如下幾個函數:這些函數中,最常用的是前兩個函數,本篇就來介紹這兩個函數。加載相關工具包和示例數據:library(ggplot2)library(patchwork)library(sf)library(RColorBrewer)library(tidyverse)data <- socviz::county_data
  • R-ggplot2 學術散點圖繪製
    本期推文,我們使用 R-ggplot2 繪製學術擬合散點圖,關注公眾號並後臺回復"資源分享"即可獲取包括本篇教程的數據及其他繪圖教程的
  • ggplot2繪製啞鈴圖
    啞鈴圖是分組條形圖的絕佳替代品,因為啞鈴圖在紙張上使用的墨水更少,而且易於理解使用gapminder數據集並製作啞鈴圖,以顯示多個國家的預期壽命值在1952年至2007年之間的變化library(tidyverse)library(gapminder)
  • 手把手教你使用ggplot2繪製折線圖
    一、繪製單條折線圖有關時間序列的折線圖library(ggplot2)library(lubridate) #處理日期時間相關的R包,非常有用,強烈推薦Year <- year(seq(from = as.Date('
  • 手把手教你使用ggplot2繪製條形圖
    繪製離散單變量的條形圖從數據形式來看:有匯總好的數據集和明細數據集使用匯總好的數據集繪製條形圖:x <- c('A','B','C','D','E')y <- c(13,22,16,31,8)df <- data.frame(x = x, y = y)ggplot(data = df
  • 基於ggplot2包繪製SCI學術箱線圖的保姆級教程
    具體含義可通過如下圖表進行說明:圖源網絡,侵刪本期推文使用ggplot2包來繪製箱線圖。1. 加載數據、數據在後臺回復箱線圖即可免費獲取。2. 繪製基本箱線圖使用ggplot2包繪製箱線圖很簡單,主要使用geom_boxplot()函數,先採用默認的參數繪製。
  • R語言ggplot繪製峰巒圖繪製
    峰巒圖繪製清除當前環境中的變量rm(list=ls())設置工作目錄setwd("C:/Users/Dell/Desktop/R_Plots/19ridge/")使用ggridges包繪製峰巒圖library(ggridges)library(ggplot2)#### Attaching package: 'ggplot2'## The following object is masked from 'package:ggridges':#### scale_discrete_manual# 查看示例數據head
  • ggplot2繪製人體結構圖
    分享一個ggplot2繪製人體結構圖的小例子,喜歡的小夥伴可以關注個人公眾號R語言數據分析指南
  • 小提琴圖
    小提琴圖 (ViolinPlot) 用於顯示數據分布及其概率密度。這種圖表結合了箱形圖和密度圖的特徵,主要用來顯示數據的分布形狀。中間的黑色粗條表示四分位數範圍,從其延伸的幼細黑線代表 95% 置信區間,而白點則為中位數。
  • 想讓你的文章有這樣絢爛多彩的箱型圖?小白也能輕鬆搞定
    談起數據分布型圖表的可視化過程,箱型圖往往是大家最為想到和常用的一種展現形式。目前,對於箱型圖的繪製方法,從簡單的EXCEL,到SPSS和GraphPad的使用,再到R和Python的興起,湧現了各種方法。不同Stage分期中某基因的表達情況圖,其中圖A通過GraphPad繪製,圖B通過R繪製然而,對於同樣一份數據,一張美觀的箱型圖,無疑能為文章增添不少的風採。
  • R語言ggplot2 (一):ggplot2包安裝和初始作圖
    本文關注於ggplot2包的安裝、ggplot2基本作圖語法等。一 ggplot2的安裝> install.packages("ggplot2")#以上代碼也可以直接用install.packages("ggplot2",lib=""~/R/lib"")代替,這樣就只是把包安裝到路徑中,並不會載入路徑,#不過後續載入包就找不到路徑了,需要在library的時候指定路徑
  • Python語言plotnine VS R語言ggplot2
    ggplot2包是由Hadley Wickham在2005年創造。
  • R語言畫展ggplot2篇-點圖
    今天用ggplot2實現點圖(Dotplot)的製作。點圖通常用於不同組別間的均數比較,也可以與箱形圖或小提琴圖結合在一起。#查看數據summary(iris)Sepal.Length Sepal.Width Petal.Length Petal.Width Species Min.
  • heatmaply包:繪製交互式熱圖
    heatmap(熱圖)常用於高維數據的可視化。數據集中的數據按照矩陣形式,編碼為彩色的網格結構。熱圖常附有樹狀圖。熱圖應用領域很多,如基因、相關性、缺失值等。heatmaply包能夠生成交互式地圖,滑鼠懸停可查看數值信息、拖動局部可放大查看。
  • 手把手教你使用ggplot2繪製中國地圖
    自從用了ggplot2包,越來越覺得其博大精深,通過圖層的概念可以繪製豐富的可視化圖形,如常見的散點圖、直方圖、條形圖、折線圖等。
  • 單細胞小提琴圖自己畫
    小提琴圖在單細胞領域應用非常廣泛,能比較好的展現具體的某個基因在不同的單細胞亞群的表達量高低分布情況,如下:每個細胞亞群都有表達這個圖說明了這個Igkc基因,在基本上每個細胞亞群都有表達,其中在編號為在編號為11的亞群特異性高表達通常來說,在單細胞數據處理項目裡面,有seurat可以完成一切,同樣的,小提琴圖也是如此,被包裝成為了函數可以直接依據R裡面的seurat對象來進行可視化
  • R語言的ggplot2+ggforce包繪製散點圖並添加分組邊界
    之前的推文介紹過ggplot2繪圖添加橢圓分組邊界和圓形分組邊界,藉助的函數分別是ggforce包裡的geom_circle()函數今天查找桑基圖的資料的時候發現了一份介紹ggforce這個包的使用方法的文章 https://rviews.rstudio.com/2019/09/19/intro-to-ggforce/ ,發現發現添加分組邊界還有其他的實現方法,今天的推文記錄一下
  • R|散點圖+邊際圖(柱形圖,小提琴圖),顏值區UP
    本文簡單的介紹2種散點圖添加邊際圖的方法。使用經典數據集irislibrary(ggplot2) #加載ggplot2包library(ggExtra)library(ggstatsplot)data(iris)head