Подтвердить что ты не робот

Диаграмма Венна пропорциональная и цветовая штриховка с полупрозрачностью

У меня есть следующий тип данных подсчета.

A   450
B   1800
A and B both    230

Я хочу разработать красочную (возможно, полупрозрачность на пересечениях), такую ​​как диаграмма Венна.

enter image description here

Примечание. Этот рисунок является примером ручной работы в PowerPoint и не масштабируется.

4b9b3361

Ответ 1

Вот сообщение, в котором обсуждается диаграмма Венна из списка кластеров и сопутствующих факторов. .

Для удобства использования пакета venneuler:

require(venneuler)
v <- venneuler(c(A=450, B=1800, "A&B"=230))
plot(v)

enter image description here

Для более продвинутых и индивидуальных решений проверьте пакет VennDiagram.

Ответ 2

Основываясь на втором ответе второго предложения Geek On Acid (спасибо еще раз), я смог бы также решить проблему с линией. Я отправляю сообщения, если это относится к другим пользователям!

  require(VennDiagram)
    venn.diagram(list(B = 1:1800, A = 1571:2020),fill = c("red", "green"),
  alpha = c(0.5, 0.5), cex = 2,cat.fontface = 4,lty =2, fontfamily =3, 
   filename = "trial2.emf");

enter image description here

Ответ 3

Недавно я опубликовал новый пакет R eulerr, который делает то, что вы хотите. Он очень похож на venneuler, но без его несогласованности.

library(eulerr)
fit <- euler(c(A = 450, B = 1800, "A&B" = 230))
plot(fit, fill_opacity = 0.3)

Eulerr

Или вы можете попробовать блестящее приложение для того же r-пакета в jolars.co/eulerr

shiny-euler

Ответ 4

Даже если это не полностью ответит на ваш вопрос. Я думал, что это будет полезно для других людей, желающих построить Венн Диаграм. Функцию venn() можно использовать из пакета gplots: http://www.inside-r.org/packages/cran/gplots/docs/venn

## modified slightly from the example given in the documentation
## Example using a list of item names belonging to the
## specified group.
##
require(gplots) 
## construct some fake gene names..
oneName <- function() paste(sample(LETTERS,5,replace=TRUE),collapse="")
geneNames <- replicate(1000, oneName())

## 
GroupA <- sample(geneNames, 400, replace=FALSE)
GroupB <- sample(geneNames, 750, replace=FALSE)
GroupC <- sample(geneNames, 250, replace=FALSE)
GroupD <- sample(geneNames, 300, replace=FALSE)

venn(list(GrpA=GroupA,GrpB=GroupB,GrpC=GroupC,GrpD=GroupD))

enter image description here Впоследствии я просто добавляю цвета и прозрачность с помощью иллюстратора. enter image description here

Ответ 5

Существует интуитивно понятный и гибкий пропорциональный плоттер, который вы можете скачать и запустить. Найдите его по адресу: http://omics.pnl.gov/software/VennDiagramPlotter.php

и

jvenn: интерактивный просмотрщик диаграммы Venn - GenoToul Bioinfo: http://bioinfo.genotoul.fr/jvenn/

Ответ 6

Я знаю, что OP спрашивает о решении в R, но я хотел бы указать на веб-решение под названием BioVenn, Он принимает до 3 списков элементов и рисует диаграмму Венна так, чтобы каждая поверхность была пропорциональна числу элементов - как этот:

enter image description here

На этой диаграмме я изменил вручную (через PhotoShop) размещение чисел, так как мне не понравились местоположения, выбранные BioVenn. Но вы можете не иметь номера.

В теории списки, используемые с BioVenn, должны состоять из идентификаторов генов, но на практике это не имеет значения - списки просто должны содержать строки.