Я работал над диаграммами Венна в GNU R. Я пытался использовать пакеты venneuler и VennDiagram. Я считаю, что VennDiagram имеет гораздо более детальный контроль, но, похоже, не хватает документации, чтобы заполнить все детали. Самый близкий, который я могу найти, является этим файлом PPT.
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3041657/bin/1471-2105-12-35-S4.PPT, который я нашел по URL: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3041657/
Вот мои проблемы с использованием VennDiagram.
Для кода
require(VennDiagram)
venn.diagram(list(B = 1:2000, A = 200:400),fill = c("yellow", "blue"),
alpha = c(0.8, 0.8), cex =1.5, cat.pos=0, cat.fontface = 4,
lty = 1, fontfamily =3, filename = "test001.jpeg");
(У меня было изображение здесь, но, поскольку я новичок, у меня нет прав на публикацию изображения. Пожалуйста, сгенерируйте изображение из кода выше.)
Я могу сделать подмножество (следовательно, круг внутри круга). Но я не нахожу способ сделать следующее:
- Сделать BC, чтобы оно равнялось B ^ C. Нет, буквальное "B ^ C" не работает. Я думаю, что есть способ перемаркировать наборы в другом свойстве, но я не видел, как это сделать.
- Для размещения меток B ^ C и A ^ C внутри наборов, а не снаружи, как показано в данный момент. Я попытался cat.pos = "inner", но это не допустимое свойство. Я также пробовал cat.pos = c (0,0) в надежде, что смогу скормить его как X, Y, где X & Y от центра круга, но это не дало никаких других результатов.
Благодаря DWin, вот код для завершения моей диаграммы к упражнению.
Предположим, что A ⊂ B. Покажите, что B c ⊂ A c .
require(VennDiagram)
plot.new()
venn.plot <- venn.diagram(
x = list(B = 1:200, A = 20:40), category.names= expression(B, A),
fill = c("yellow", "blue"), alpha = c(0.8, 0.8), cex =1.5,
cat.pos=0, cat.dist=c(-.1, -.1), filename = NULL) ;
grid.draw(venn.plot); # grid graphic requires explicit print or draw operation
grid.text(expression(B^c),x=0.2,y=0.95)
grid.text(expression(A^c),x=0.16,y=0.95)
grid.text(expression(A^c),x=0.16,y=0.75)