比例韦恩图

作者

[编辑] 郑虎;

[审核] .

环境配置

  • 系统: Cross-platform (Linux/MacOS/Windows)

  • 编程语言: R

  • 依赖包: data.table; jsonlite; eulerr; ggplotify

# 安装包
if (!requireNamespace("data.table", quietly = TRUE)) {
  install.packages("data.table")
}
if (!requireNamespace("jsonlite", quietly = TRUE)) {
  install.packages("jsonlite")
}
if (!requireNamespace("eulerr", quietly = TRUE)) {
  install.packages("eulerr")
}
if (!requireNamespace("ggplotify", quietly = TRUE)) {
  install.packages("ggplotify")
}

# 加载包
library(data.table)
library(jsonlite)
library(eulerr)
library(ggplotify)

数据准备

# 加载数据
data <- data.table::fread(jsonlite::read_json("https://hiplot.cn/ui/basic/eulerr/data.json")$exampleData$textarea[[1]])
data <- as.data.frame(data)

# 整理数据格式
genes <- as.numeric(data[, 2])
names(genes) <- as.character(data[, 1])
euler_set <- euler(genes)
  
# 查看数据
head(data)
      Term Value
1       SE    13
2    Treat    28
3 Anti-CCP   101
4    DAS28    91
5 SE&Treat     1
6 SE&DAS28    14

可视化

# 比例韦恩图
fill <- c("#3B4992FF","#EE0000FF","#008B45FF","#631879FF","#008280FF","#BB0021FF",
          "#5F559BFF","#A20056FF")
p <- as.ggplot(
  plot(euler_set,
    labels = list(col = rep("white", length(genes))),
    fills = list(fill = fill),
    quantities = list(type = c("percent", "counts"),
    col = rep("white", length(genes))),
    main = "Eulerr")
)

p
图 1: 比例韦恩图