美文网首页
R语言绘制Venn图的细节

R语言绘制Venn图的细节

作者: CrimsonUMO | 来源:发表于2022-11-19 17:02 被阅读0次

R语言绘制Venn图比较方便,但是有很多细节需要注意,不然特别容易报错。

基本的语法和参数

VennDiagram::venn.diagram(
  x = venn,filename = NULL,
  #filename = "./figure_final/tif/Venn.tiff",
  resolution = 300,
  disable.logging = FALSE, 
  col = NA,
  fill = palette, 
  cat.col = palette, 
  cat.cex = 1, 
  cat.dist = -0.15, 
  rotation.degree = 0, main.cex = 1, 
  cex = 1, alpha = 0.5, reverse = TRUE
)

x是输入数据
filename可选,如果filename填了文件路径的话就直接输出一个图片文件,如果filename填NULL的话就可以赋值给一个变量,后面再输出。
fill和cat.col的数量应当与x的元素数量保持一致

细节一

输入数据(也就是x)应当是一个list。而且list的名字不能缺,必须为这个list的每个元素命名。

names(venn) <- c("TCGA-Up","TCGA-Down","CON-Up","CON-Down")

如果没有名字的话,作图的时候会报错:

Error in VennDiagram::draw.quad.venn(area1 = length(A), area2 = length(B),  : 
  Unexpected parameter length for "category"

细节二

想输出PDF文件的话,不能直接print。我们可以看一下venn.diagram输出的是什么类型的对象

> p <- VennDiagram::venn.diagram(
+   x = venn,filename = NULL,
+   #filename = "./figure_final/tif/Venn.tiff",
+   resolution = 300,
+   disable.logging = FALSE, 
+   col = NA,
+   fill = palette, 
+   cat.col = palette, 
+   cat.cex = 1, 
+   cat.dist = -0.15, 
+   rotation.degree = 0, main.cex = 1, 
+   cex = 1, alpha = 0.5, reverse = TRUE
+ )
> class(p)
[1] "gList"

如果直接输出这个p的话,会变成这样:

> print(p)
(polygon[GRID.polygon.1313], polygon[GRID.polygon.1314], polygon[GRID.polygon.1315], polygon[GRID.polygon.1316], polygon[GRID.polygon.1317], polygon[GRID.polygon.1318], polygon[GRID.polygon.1319], polygon[GRID.polygon.1320], text[GRID.text.1321], text[GRID.text.1322], text[GRID.text.1323], text[GRID.text.1324], text[GRID.text.1325], text[GRID.text.1326], text[GRID.text.1327], text[GRID.text.1328], text[GRID.text.1329], text[GRID.text.1330], text[GRID.text.1331], text[GRID.text.1332], text[GRID.text.1333], text[GRID.text.1334], text[GRID.text.1335], text[GRID.text.1336], text[GRID.text.1337], text[GRID.text.1338], text[GRID.text.1339]) 

所以在输出成PDF之前,需要先转换一下对象的类型:

> p = ggplotify::as.ggplot(cowplot::as_grob(p))
> class(p)
[1] "gg"     "ggplot"

这样就可以正常print并且输出到PDF里了。

相关文章

网友评论

      本文标题:R语言绘制Venn图的细节

      本文链接:https://www.haomeiwen.com/subject/nqwbxdtx.html