【问题标题】:How to create a Venn Diagram using R?如何使用 R 创建维恩图?
【发布时间】:2019-04-22 01:12:49
【问题描述】:

我使用 eulerr 包创建了一个维恩图,但它不允许我对其进行自定义,并且内圈的轮廓似乎与示例空间圈相接触。我查看了 VennDiagram 包手册,但没有运气。有没有办法使用 ggplot2 或任何其他 R 包创建维恩图。

我正在寻找该用户试图对我拥有的数据执行的操作。 3 组落入完整的样本空间。 How to draw a venn diagram subset by a main vector in R

这是使用 eulerr 包创建的:

这是我拥有的数据。圆圈 B、C 和 D 应该在圆圈 A 内,总共有 141 个。变量 a 中的 35 是 3 维恩图和圆圈之间的空间(空白)。

b = c(50,0,9,2,1,0,0,0)
c = c(50,21,0,2,0,3,0,0)
d = c(50,21,9,2,0,3,20,0)
a = c(50, 21, 9, 2,1,3,20,35)

手提袋 = cbind(b, c, d, a)

我不知道如何去做并制作一个我可以自定义的可展示的图表。

我在使用eulerr包的时候,在命令中手动输入了数据。

【问题讨论】:

标签: r ggplot2 gplots


【解决方案1】:

你可以考虑我的nVennR 包。使用您的数据,

>library(nVennR)
> myV <- plotVenn(list(b = c(50,9,2,1),
+                      c = c(50,21,2,3),
+                      d = c(50,21,9,2,3,20),
+                      a = c(50, 21, 9, 2,1,3,20,35)))
> showSVG(myV, opacity = 0.2, borderWidth = 1)

结果:

您还可以列出每个区域的元素:

> listVennRegions(myV)
$`0, 0, 0, 1 (a)`
[1] 35

$`0, 0, 1, 1 (d, a)`
[1] 20

$`0, 1, 1, 1 (c, d, a)`
[1] 21  3

$`1, 0, 0, 1 (b, a)`
[1] 1

$`1, 0, 1, 1 (b, d, a)`
[1] 9

$`1, 1, 1, 1 (b, c, d, a)`
[1] 50  2

请注意,我删除了您列表中的零。该包将这些零作为元素,列表 a 中不存在这些元素。如果您有兴趣,可以找到该算法的vignette 和web interface。

【讨论】:

  • 感谢您的回答。我希望创建一个类似于我发布的情节。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多