Я работал над диаграммами Венна в 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. Покажите, что Bc ⊂ Ac.
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)