R 维恩图中的标签位置、形状和重叠颜色问题

R 维恩图中的标签位置、形状和重叠颜色问题,r,venn-diagram,R,Venn Diagram,我有以下数据: dc <- c("CACNA1C", "CACNA1D", "KCNN4", "CACNA1F", "CACNA1D", "CACNA1C", "GNRHR", "CD80", "CD86", "ITGA2B" ) tc <- c(

我有以下数据:

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

我有三个问题:

  • 这些形状是椭圆形而不是圆形。这是可以更改的还是默认形状

  • 最好将这些标签定位在两个形状主体的更中心位置。使用
    cat.pos=c(-20,14)
    我可以向左或向右移动两个标签,但不能倒置

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

  • 回答这些问题中的任何一个都会非常有帮助

  • 这完全取决于窗口/输出图片的缩放比例。将长宽比设置为1:1将生成一个圆

  • cat.pos
    与左右无关:

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

    此外,
    cat.dist
    在这方面也很有用:

    给出每个类别名称的距离的向量 圆的边缘(可以是负数)

  • 颜色不一样。不过,它们非常相似,因为α值很高,蓝色“接近”绿色。似乎不可能指定第三种颜色,但结果颜色是其他两种颜色的混合,这有点道理
  • 也就是说,你可以这样做:

    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)
    
    Vt
    
    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)