我尝试为图表中的圆圈添加不同的颜色,同时使用 foreach 将圆圈嵌入彼此中。
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usepackage{amsfonts}
\usepackage{amssymb}
\begin{document}
\begin{tikzpicture}[font=\sffamily, scale=0.8]
\foreach \X/\t [count=\Y starting from 2] in {Natural $\mathbb{N}$/red! ,Whole numbers $\mathbb{Z}$/green ,Rational $\mathbb{Q}$, Real algebraic $\mathbb{A}$, Real $\mathbb{R}$}
{\draw (-\Y,-\Y/2) circle ({1.5*\Y} and \Y);
\node at (1-2*\Y,-1.1*\Y) {\X}; }
\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) {Types of numbers};
\end{tikzpicture}
\end{document}
有任何帮助或提示吗?谢谢。
答案1
如果要填充椭圆,则需要先画最大的椭圆,最后画最小的椭圆,否则最大的椭圆将覆盖图形的很大一部分。
由于您使用循环x/y
中的符号\foreach
并将\X
和\t
用作变量,因此您需要做的就是以的形式定义每个 for-each 项<text of the node>/<color>
,然后\t
在以下代码的相关位置使用(存储颜色部分的位置),例如使用选项fill=\t
。
因此,您可以执行以下操作:
\documentclass[border=3.14mm]{standalone}
\usepackage{tikz}
\usepackage{amsfonts}
\usepackage{amssymb}
\begin{document}
\begin{tikzpicture}[font=\sffamily, scale=0.8]
\foreach \X/\t [count=\Y starting from 2] in {
Real $\mathbb{R}$/cyan,
Real algebraic $\mathbb{A}$/green,
Rational $\mathbb{Q}$/yellow,
Whole numbers $\mathbb{Z}$/orange,
Natural $\mathbb{N}$/red} {
\pgfmathsetmacro{\nY}{8-\Y}
\draw[fill=\t!25] (-\nY,-\nY/2) circle ({1.5*\nY} and \nY);
\node at (1-2*\nY,-1.1*\nY) {\X};
}
\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) {Types of numbers};
\end{tikzpicture}
\end{document}