Как построить пропорциональную диаграмму Венна/Эйлера с тремя наборами?

У меня есть набор данных микрочипа, и я хотел бы представить его в соответствии с прикрепленным рисунком (сделано с помощью PowerPoint). Я пробовал различные пакеты, доступные для R (VennDiagram, venneuler, limma). Однако мне не удалось нарисовать данные пропорционально или показать значения.

Кто-нибудь знает, как это сделать?

Код для игры можно найти ниже!

Спасибо!

# you might need these:
source("http://www.bioconductor.org/biocLite.R")
biocLite("limma")
library(VennDiagram)
library(limma)
library(venneuler)

# Trial 1: Kind of proportional but difficult to customize for labels and other stuff
su <- venneuler(c(A=162, B=104, C=86, "A&B"=206, "A&C"=112, "B&C"=90 ,"A&B&C"=2433))
plot(su)

# Trial 2: looks nice but not proportional
hw <- c(F,F,F,F,T,T,T,T)
hm <- c(F,F,T,T,F,F,T,T)
hr <- c(F,T,F,T,F,T,F,T)
c4 <- cbind(hw,hm,hr)
e <- vennCounts(c4)
e[1:8,4] <- c(3193,86,104,90,162,112,206,2433)
vennDiagram(e)

введите здесь описание изображения


person Strohmi    schedule 02.02.2013    source источник
comment
Я не думаю, что диаграммы Венна когда-либо предназначались для отображения пропорциональных площадей. В любом случае, вашим читателям почти невозможно осмысленно интерпретировать относительные области перекрытий. Если бы они могли, вам не нужны были бы цифры. Я предлагаю сделать шаг назад, подумать об основном сообщении, которое вы хотите донести, и настроить (при необходимости вручную) графику, чтобы выделить это сообщение. --и да, Эд Тафти мой пророк :-)   -  person Carl Witthoft    schedule 02.02.2013
comment
Я думаю, что использование пропорций может быть полезным в некоторых случаях, хотя и не во всех.   -  person Stenemo    schedule 21.03.2014
comment
Документация venneuler очень бедна, но вы можете изменить метки с помощью su$labels = c("Foo", "Bar", "Baz"), цвета с помощью su$colors = c(0.1, 0.44, 0.3) и т. д. Однако я не думаю, что возможно нарисовать пропорциональные диаграммы Венна для трех наборов с помощью кругов. Есть только шесть параметров (три радиуса и три стороны треугольника, соединяющие центры кругов), которые пытаются представить семь различных областей. Однако это может быть (?) Возможно с другими формами, например. эллипсы. Я нашел eulerAPE, но мне это не помогло.   -  person Sparhawk    schedule 06.10.2016


Ответы (2)


Я бы рекомендовал пакет VennDiagram: http://cran.r-project.org/web/packages/VennDiagram/VennDiagram.pdf

На паке 19 вы найдете 10 паков очень хороших примеров (как продвинутых, так и упрощенных). На данный момент я не нашел ничего, что он не может сделать, что мне нужно.

В качестве общей помощи для других людей, которые попадают сюда по этому вопросу (не имеющему непосредственного отношения к этому вопросу, но имеющему отношение к делу), я бы рекомендовал искать ваш ответ, используя этот поиск

person Stenemo    schedule 21.03.2014

С моим пакетом nVennR это можно сделать двумя способами, как показано в виньетка. В этом примере

> library(nVennR)
> myV <- createVennObj(nSets = 3, sNames = c('A', 'B', 'C'), sSizes = c(0, 86, 104, 90, 162, 112, 206, 2433))
> myV <- plotVenn(nVennObj = myV)

Три набора, пропорциональные

Пакет может представлять большее количество наборов.

person vqf    schedule 24.05.2019