Тройная диаграмма Венна, отображающая текст - PullRequest
1 голос
/ 27 марта 2020

Я собираюсь создать тройную диаграмму Венна, где я могу просто ввести списки текста, и она автоматически выплевывает тройную диаграмму Венна.

Вот диаграмма Венна, которую я сделал вручную:

Here's a venn diagram I made manually

Поэтому для этого я хотел бы ввести следующие списки:

мигрень → эрготы, противорвотные средства, НПВП, ацетаминофен, триптаны

напряжение → НПВП, ацетаминофен

кластер → 100% O2, триптаны

и пусть он выплюнет диаграмму Венны, как я сделал

Как бы я начал это делать? Я попробовал пакет диаграммы Венна, но он кажется слишком сложным. Я отредактировал чей-то пример кода, и моя диаграмма просто развалилась. Мой тест выглядел так: enter image description here

из этого кода:

library(VennDiagram)



SET1 <- c('triptan') #fibrocystic change
SET2 <- c('triptan') #fibroadenoma
SET3 <- c('NSAID') 



v <- venn.diagram(list(SET1 = SET1, SET2 = SET2, SET3 = SET3),
                  fill = c("red", "green","blue"),
                  alpha = c(0.5, 0.5, 0.5), cat.cex = 1.5, cex=1.5,
                  filename=NULL)
grid.newpage()
grid.draw(v)


v[[7]]$label  <- paste(setdiff(SET1, intersect(SET2,SET3)), collapse="\n") 
v[[8]]$label <- paste(setdiff(intersect(SET1,SET2),intersect(SET1, intersect(SET2,SET3))), collapse="\n")
v[[9]]$label <- paste(setdiff(SET2, intersect(SET1,SET3)), collapse="\n")
v[[10]]$label <- paste(setdiff(intersect(SET3,SET1),intersect(SET3, intersect(SET1,SET2))), collapse="\n")
v[[11]]$label <- paste(intersect(SET1, intersect(SET2,SET3)), collapse="\n")
v[[12]]$label <- paste(setdiff(intersect(SET2,SET3),intersect(SET2, intersect(SET1,SET3))), collapse="\n")
v[[13]]$label <- paste(setdiff(SET3, intersect(SET1,SET2)), collapse="\n")


grid.newpage()
grid.draw(v)

оригинальный код: { ссылка }

...