Диаграмма Венна пропорциональная и цветовая штриховка с полупрозрачностью
У меня есть следующий тип данных подсчета.
A 450
B 1800
A and B both 230
Я хочу разработать красочную (возможно, полупрозрачность на пересечениях), такую как диаграмма Венна.
![enter image description here]()
Примечание. Этот рисунок является примером ручной работы в PowerPoint и не масштабируется.
Ответы
Ответ 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]()
Ответ 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, должны состоять из идентификаторов генов, но на практике это не имеет значения - списки просто должны содержать строки.