ラテックスで積み上げベン図を描く

ラテックスで積み上げベン図を描く

次の図のような積み重ねベン図を LaTeX で描画したいと思います。ここに画像の説明を入力してください

何か助けてください。よろしくお願いします。

編集済み: このラテックスを変更しようとしましたが、在庫切れになりました:

    \usetikzlibrary{arrows.meta} 
\usetikzlibrary{decorations.text}

\begin{tikzpicture}[scale=0.85] 
\foreach \X [count=\Y starting from 2] in 
{A,B,C} 
{\draw (-\Y,-\Y/2) circle ({1.5*\Y} and \Y);
\path[decoration={text along path,
text={classes |\itshape|\X},text align=center,raise=0.2em},decorate] (-\Y,-\Y/2) +(-1.5*\Y,0) arc(180:360:{1.5*\Y} and \Y);
} 
\draw ([xshift=-0.5cm,yshift=-0.5cm]current bounding box.south west) 
rectangle ([xshift=0.5cm,yshift=0.5cm]current bounding box.north east); 
\node[anchor=south] at (current bounding box.north) {\textbf{Three classes}}; 
\end{tikzpicture}

答え1

\foreach提供されたコードに基づいてループを使用する非常に単純な解決策は次のようになります。

\documentclass[border=10pt]{standalone}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[scale=0.5]
\foreach \x [count=\y] in {A,B,C} {
    \draw (0,{-\y}) circle[radius=\y];
    \node at (0,{-2*\y+1}) {\x};
} 
\end{tikzpicture}

\end{document}

ここに画像の説明を入力してください

ただし、たとえば 3 つの円を何らかの色で塗りつぶしたい場合は、最大の円から最小の円の順に描く必要があることに注意してください。そうしないと、最大の円が他の円を覆ってしまいます。

\documentclass[border=10pt]{standalone}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[scale=0.5]
\foreach \x/\z [count=\y] in {C/yellow,B/orange,A/red} {
    \draw[fill=\z] (0,{\y-4}) circle[radius={4-\y}];
    \node at (0,{-2*(4-\y)+1}) {\x};
} 
\end{tikzpicture}

\end{document}

ここに画像の説明を入力してください

関連情報