首页 > 解决方案 > 使用 venn.diagram 包的面积比例维恩图

问题描述

我在另一个关闭的线程中读到评论说可以使用 R 中的包 venn.diagram 创建面积比例维恩图。

我将代码改编为我的数据(基因列表),但圆圈的面积与数据向量的长度无关。

有什么建议可以解决这个问题吗?

谢谢!下面的代码和输出。

代码示例

venn.diagram(x = list(G015_All, G08_Female, G015_Male),
                 na = "remove",
                 category.names = c("G015_All", "G08_Female", "G015_Male"),
                 fill = c('lightyellow', 'paleturquoise', 'lightgreen'),
                 alpha = c(0.5, 0.5, 0.5),
                 cex = 2,
                 cat.fontface = 4,
                 lty =2,
                 fontfamily =3,
                 filename = "VennPlot.png",
                 imagetype = "png",
                 output = T)

输出维恩图

标签: rvenn-diagram

解决方案


有几个 R 包可以做到这一点,每个包都有不同的方法。我自己的尝试,nVennR绘制了由图中的线包围的比例圆。您可以阅读小插图以获取有关如何使用它的示例。还有一个最多可容纳六套的网络服务器。我试图重现您作为示例显示的图表。我必须手动输入设置的尺寸,但也可以从您的示例中的列表中生成图表(如小插图中所示):

> library(nVennR)
> myV <- createVennObj(nSets = 3, sNames = c("G015_All", "G08_Female", "G015_Male"), sSizes = c(0, 7, 5212, 35, 1, 0, 2, 37))
> myV <- plotVenn(nVennObj = myV, setColors=c('yellow', 'turquoise', 'green')) 

结果:

成比例的

只是几件事。首先,我改变了颜色。nVennR 使用不透明度来混合颜色,因此默认情况下您会得到较暗的颜色。二是小套的造型不完美。这与打包圆圈的算法有关,并且只应在极少数情况下发生,例如群体规模的极端不平衡。


推荐阅读