我在这个链接中提到了我的问题二集图和三集图:venndiagram 包特别是 3 套。
\documentclass[a4paper,12pt]{article}
\usepackage{venndiagram}
\begin{document}
\begin{venndiagram3sets}[labelOnlyA={4},labelOnlyB={5},labelOnlyC={7},
labelOnlyAB={3},labelOnlyAC={2},labelOnlyBC={1},labelABC={9},
labelNotABC={8}]
\setpostvennhook{\node[above right] at (venn top right){$|U|=50$};}
\end{venndiagram3sets}
\end{document}
包裹文图已过时(2018-06-07)。是否可以更改venndiagram.sty
指南文件中包含的内容,将 A、B、C 放在集合之外,并构造一个具有 4 个维恩集的图表,该图表具有与用 3 个圆周构造的维恩集相同的特征?我无法更改venndiagram.sty
,请在此处联系包的作者 Nicola LC Talbothttps://www.dickimaw-books.com/latexresources.html和这里https://www.goodreads.com/author/show/8503877.Nicola_L_C_Talbot。事实上,没有电子邮件可以联系作者。我也非常希望你能帮助我一所科学高中的一年级学生。
答案1
更新的解决方案
自动化执行起来并不复杂。下面这个命令\VennFour
接受一个必需参数,即以逗号分隔的区域/内容列表。例如,
\VennFour{a/2, bc/5, bcd/37, abc/33, abcd/3}
将在只有 A 的子集中放置 2,在只有 B 和 C 但不包含 A 或 D 的子集中放置 5。缺失区域留空。外部区域使用标签o
。标签U
可用于右上角的通用集。
可选参数可用于 Ti钾适用于整个画面的 Z 选项。例如,
\VennFour[scale=.8, transform shape]{a/2, bc/5, bcd/37, abc/33, abcd/3}
将会缩放整个图片。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\tikzset{ellip/.style={ellipse, draw, thick,
minimum height=3cm, minimum width=6cm, rotate=#1
}}
\newcommand{\VennFour}[2][]{\begin{tikzpicture}[#1]
\draw[thick] (-5,-4) rectangle (5,3);
\coordinate(U) at (5,3.3);
\node[ellip=-35, label=160:$A$] (A) at (0,0){}; \node[ellip=35, label=20:$B$] (B) at (0,0){};
\node[ellip=-30, label=270:$C$] (C) at (-1.5,-1){}; \node[ellip=30, label=270:$D$] (D) at (1.5,-1){};
\coordinate(a)at(-1.6,1.5); \coordinate(b)at(1.6,1.5); \coordinate(c)at(-3.2,0); \coordinate(d)at(3.2,0);
\coordinate(ab)at(0,.8); \coordinate(cd)at(0,-2.4); \coordinate(ac)at(-2.1,.55);
\coordinate(bd)at(2.1,.55); \coordinate(ad)at(1.9,-1.3); \coordinate(bc)at(-1.9,-1.3);
\coordinate(abc)at(-1.1,-.2); \coordinate(abd)at(1.1,-.2); \coordinate(acd)at(.75,-1.7); \coordinate(bcd)at(-.75,-1.7);
\coordinate(abcd)at(0,-1.1); \coordinate(o)at(0,-3.5);
\foreach \s/\n in {#2} {\node at (\s){\n};}
\end{tikzpicture}}
\begin{document}
\VennFour{U/$|U|=\;?$, a/2, bc/5, bcd/37, abc/33, abcd/3, b/25, c/9, d/12, ac/0, bd/10, ab/23, abd/11, ad/1, acd/6, cd/15, o/4}
\end{document}
原始解决方案
我不熟悉这个venndiagram
包,但我在文档中没有看到任何内容表明它适用于三个以上的集合。特别是,超过三个集合的维恩图不能由圆形组成,而集合数为合数的维恩图不能旋转对称。[例如,参见 F. Ruskey、C. Savage 和 S. Wagon,寻找简单对称维恩图, 美国数学会刊 53 (2006) 1304–1312.]
这是从头开始绘制的具有全等椭圆的版本。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\tikzset{venn/.style={ellipse, draw, thick,
minimum height=3cm, minimum width=6cm, rotate=#1
}}
\begin{document}
\begin{tikzpicture}
\draw[thick] (-5,-4) rectangle (5,3)node[above right]{$|U|=n$};
\node[venn=-35, label=160:$A$] (A) at (0,0){};
\node[venn=35, label=20:$B$] (B) at (0,0){};
\node[venn=-30, label=270:$C$] (C) at (-1.5,-1){};
\node[venn=30, label=270:$D$] (D) at (1.5,-1){};
\node at ([shift=(-20:.9)]A.180){1};\node at ([shift=(200:.9)]B.0){2};
\node at ([shift=(-35:1.1)]C.180){3};\node at ([shift=(215:1.1)]D.0){4};
\node at ([shift=(90:.8)]A.center){5};
\node at ([shift=(40:.8)]B.180){8};\node at ([shift=(140:.8)]A.0){7};
\node at ([shift=(-72:1.25)]A.180){6};\node at ([shift=(252:1.25)]B.0){9};
\node at (0,-2.4){10};
\node at (-1.1,-.2){11};\node at (1.1,-.2){12};
\node at (-.8,-1.7){13};\node at (.8,-1.7){14};
\node at (0,-1){15};\node at (0,-3.5){16};
\end{tikzpicture}
\end{document}