加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

R语言绘制韦恩图Veendiagram

(2017-05-22 12:41:03)
标签:

r语言

韦恩图

venndiagram

说明

这里使用VennDiagram包来绘制韦恩图。绘制的韦恩图既可以直接保存为文件,也可以像我这里一样,保存为gtable的变量。

有时候我们需要把不同的图形整合到一张图里,这里我们使用cowplot包来整合。如最后一个图所示,可以把来自不同的韦恩图整合到一个文件里。



library(VennDiagram)
library(cowplot)


# 1) plot two-set Venn diagram

#data
HAS=1:(750+781)
Down_in_mel=751:(750+781+146)
length(intersect(HAS,Down_in_mel))
#[1] 781

#plot
p1<-venn.diagram(list(HAS=HAS,Down_in_mel=Down_in_mel),
                 #express_ion在博客中是敏感字,我也觉得很绝望。express_ion去掉中间的下划线
                 category.names = c(express_ion( bold("HAS")),express_ion( bold("Down_in_mel"))), 
                 filename=NULL,
                 fill=c('dodgerblue','darkorange1'),
                 lty = 'blank',
                 #cex:Veen图中的值的大小
                 cex = 3,
                 rotation.degree=90,
                 #cat.cex:输出的标签的大小
                 cat.cex = 2.5,
                 #cat.pos:调整输出的角度。0是正上方。
                 cat.pos=c(180+45,55),
                 #cat.dist
                 cat.dist = c(0.02, 0.02),
                 #cat.col:设置标签的字体颜色
                 cat.col = c("dodgerblue", "darkorange1")
)
ggdraw(p1)

# 2) plot three-set Venn diagram


x1 = c(1:100)
x2 = c(10:20, 101:130, 200:300)
x3 = c(80:100, 250:300)
x4 = c(250:200)

x = list(A =x1, B =x2, C =x3)

p2 = venn.diagram(
  x,
  filename = NULL,
  col = "black",
  fill = c("dodgerblue", "darkorange1", "seagreen3"),
  alpha = 0.50,
  cat.col = c("dodgerblue", "darkorange1", "seagreen3"),
  cat.cex = 1.1,
  cat.fontface = "bold",
  margin = 0.05,
  output = TRUE
)

ggdraw(p2)

x = list(A =x1, B =x2, D =x4)

p3 = venn.diagram(
  x,
  filename = NULL,
  col = "black",
  fill = c("dodgerblue", "darkorange1", "seagreen3"),
  alpha = 0.50,
  cat.col = c("dodgerblue", "darkorange1", "seagreen3"),
  cat.cex = 1.1,
  cat.fontface = "bold",
  margin = 0.05,
  output = TRUE
)
ggdraw(p3)

# 3) sample five-set Venn Diagram
set.seed(123)
A <- sample(1:1000, 400, replace = FALSE);
B <- sample(1:1000, 600, replace = FALSE);
C <- sample(1:1000, 350, replace = FALSE);
D <- sample(1:1000, 550, replace = FALSE);
E <- sample(1:1000, 375, replace = FALSE);

p4 <- venn.diagram(
  x = list(
    A = A,
    B = B,
    C = C,
    D = D,
    E = E
  ),
  filename = NULL,
  col = "black",
  fill = c("dodgerblue", "goldenrod1", "darkorange1", "seagreen3", "orchid3"),
  alpha = 0.50,
  cex = c(1.5, 1.5, 1.5, 1.5, 1.5, 1, 0.8, 1, 0.8, 1, 0.8, 1, 0.8,
          1, 0.8, 1, 0.55, 1, 0.55, 1, 0.55, 1, 0.55, 1, 0.55, 1, 1, 1, 1, 1, 1.5),
  cat.col = c("dodgerblue", "goldenrod1", "darkorange1", "seagreen3", "orchid3"),
  cat.cex = 1.5,
  cat.fontface = "bold",
  margin = 0.05
)

ggdraw(p4)

#4) Merge the 4 sub-figures above into one figure.

plot_grid(p1, p2, p3, p4, nrow = 2, labels = "AUTO", label_size = 16)


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有