r - 使用 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)
解决方案
有几个 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 使用不透明度来混合颜色,因此默认情况下您会得到较暗的颜色。二是小套的造型不完美。这与打包圆圈的算法有关,并且只应在极少数情况下发生,例如群体规模的极端不平衡。
推荐阅读
- sql - 基于单独列的不同结果的 SUM 列值
- javascript - 将请求中的 Nodejs 请求转换为 React-native
- django - 我可以在 django 中使用经过训练的 ML 模型吗
- python - 我可以在 Gekko 的中间变量中使用累积分布函数吗?
- sql - 具有 n 个数据库的不同连接 SQL
- python - 将较大的数据帧拆分为多个小数据帧
- sql - 如何创建具有多个分类变量和交互效果的数据框,按 ID 分组?
- powershell - 如何在 ForEach 中停止多次遍历整个列表?
- angular - Router.navigation 在承诺中不起作用
- c# - 将数据从excel导入数据库mysql - 如何以yyyy-MM-dd HH:mm:ss格式插入cmd DateTime参数