Добавление дополнительных текстов на диаграмму Венна, нарисованную с помощью пакета VennDiagram R
У меня есть код, взятый из пакета VennDiagram для рисования диаграммы Венна (ниже). Я могу реализовать этот код для рисования диаграммы Венна, но я также хотел бы добавить дополнительный текст к каждой из разделенных областей (уникальных и общих для I, II, II, IV). Например, после запуска этого кода уникальный раздел "I" равен 60, я хотел бы добавить что-то вроде XX XU внизу 60 и так далее для других разделенных областей. Есть ли способ в R изменить этот код для достижения этих изменений?
library(VennDiagram)
venn.plot <- venn.diagram(
x = list(
I = c(1:60, 61:105, 106:140, 141:160, 166:175, 176:180, 181:205, 206:220),
IV = c(531:605, 476:530, 336:375, 376:405, 181:205, 206:220, 166:175, 176:180),
II = c(61:105, 106:140, 181:205, 206:220, 221:285, 286:335, 336:375, 376:405),
III = c(406:475, 286:335, 106:140, 141:160, 166:175, 181:205, 336:375, 476:530)
),
filename = "1D-quadruple_Venn.tiff",
col = "black",
lty = "dotted",
lwd = 4,
fill = c("cornflowerblue", "green", "yellow", "darkorchid1"),
alpha = 0.50,
label.col = c("orange", "white", "darkorchid4", "white", "white", "white",
"white", "white", "darkblue", "white",
"white", "white", "white", "darkgreen", "white"),
cex = 2.5,
fontfamily = "serif",
fontface = "bold",
cat.col = c("darkblue", "darkgreen", "orange", "darkorchid4"),
cat.cex = 2.5,
cat.fontfamily = "serif"
);
Венр диграммы:
Спасибо
1 ответ
Что-то, чтобы помочь вам начать:
Я использовал ваш пример, но для filename
я использовал NULL
потому что я хотел построить диаграмму Венна вместе с дополнительными метками.
## Function that creates a grid.text object
## The offset sets the distance from existing label
addlab <- function(lab, x, y, offset = 0) {
grid.text(lab, unit(as.numeric(x), "npc"),
unit(as.numeric(y) - offset, "npc"),
draw = FALSE)
}
## Adding a number under each label
lbls <- gList()
o <- 1 ## counter
for(i in seq(along.with=venn.plot)) {
## Check if it is a grid.text object
if(regexpr("text", venn.plot[[i]]$name) > 0) {
## Write counter value under the existing label
lbls <- gList(lbls, addlab(o, venn.plot[[i]]$x, venn.plot[[i]]$y, 0.03))
## Increase the counter
o <- o + 1
}
}
Постройте диаграмму Венна и метки:
## tiff("out.tiff")
grid.draw(venn.plot)
grid.draw(lbls)
## dev.off()
Из цифр вы можете увидеть порядок, в котором вы должны поставить свои метки, чтобы достичь того, что вы хотите.
Надеюсь, что это поможет вам,
Алекс