维恩图中的标签位置,形状和重叠颜色存在问题

时间:2019-01-07 14:26:37

标签: r venn-diagram

我有以下数据:

dc <- c("CACNA1C",  "CACNA1D",  "KCNN4",    "CACNA1F",  "CACNA1D",  "CACNA1C",  "GNRHR",    "CD80",     "CD86",     "ITGA2B"  )
tc <- c("CACNA1C",  "CACNA1D",  "CACNA1C",  "CACNA1D",  "CACNA1F",  "KCNN4",    "APP",      "GNRHR",    "CD86",     "CD80"    )

我想使用VennDiagram包创建维恩图。

library(VennDiagram)
Vt <- venn.diagram(
  x = list(
    DC_Dataset=dc,
    TC_Dataset=tc
  ),
  #filename = "1B-double_Venn.tiff",
  main = "Targets",
  main.cex = 3,
  filename = NULL,
  lwd = 4,
  fill = c("cornflowerblue", "green"),
  alpha = 0.75,
  label.col = "black",
  cex = 2,
  fontfamily = "sansserif",
  fontface = "bold",
  cat.col = c("black", "black"),
  cat.cex = 1.5,
  cat.fontfamily = "sansserif",
  cat.fontface = "bold",
  cat.dist = c(0.03, 0.03),
  cat.pos = c(-20, 14)
)

grid.newpage()
grid.draw(Vt)

enter image description here

我有3个问题:

  1. 形状是椭圆形而不是圆形。可以更改还是默认形状?

  2. 最好将这些标签放置在2个形状的主体内的中心位置。使用cat.pos = c(-20, 14),我可以左右移动2个标签,但不能上下颠倒。

  3. 我不喜欢TC数据集中具有1个唯一值的唯一部分与重叠区域具有相同的颜色。理想情况下,在更新的脚本中,例如选择紫色和绿色作为这两个区域的颜色,然后可以将第三种颜色用作重叠颜色。

回答任何一个问题都将非常有帮助。

1 个答案:

答案 0 :(得分:1)

  1. 这全部取决于窗口/输出图片的缩放比例。将长宽比设置为1:1会给出一个圆圈。

  2. cat.pos与左右无关:

  

给出每个类别名称的位置(以度为单位)的向量   圆,在12点位置为0

此外,cat.dist对此很有用:

  

给出每个类别名称距离(以npc为单位)的向量   圆的边缘(可以为负)

  1. 颜色不一样。但是,由于alpha的值很高,并且蓝色与绿色“接近”,因此它们确实很相似。似乎不可能指定第三种颜色,但是在某种意义上说,最终的颜色是其他两种颜色的混合。

也就是说,您可以执行以下操作:

Vt <- venn.diagram(
  x = list(
    DC_Dataset=dc,
    TC_Dataset=tc
  ),
  main = "Targets",
  main.cex = 3,
  filename = NULL,
  lwd = 4,
  fill = c("red", "blue"), # Modified
  alpha = 0.4, # Modified
  label.col = "black",
  cex = 2,
  fontfamily = "sansserif",
  fontface = "bold",
  cat.col = c("black", "black"),
  cat.cex = 1.5,
  cat.fontfamily = "sansserif",
  cat.fontface = "bold",
  cat.dist = c(-0.1, -0.1), # Modified
  cat.pos = c(-90, 90) # Modified
)
grid.newpage()
grid.draw(Vt)

enter image description here