答案1
他们可能没有使用pin
s,但这可能足够接近:
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\tikzset{
dot/.style={
node contents={},
circle,
fill,
inner sep=1pt,
},
big dot/.style={
node contents={},
circle,
fill=gray,
inner sep=2.5pt,
},
fuzzy/.style={
node contents={},
circle,
inner color=black,
outer color=white,
inner sep=6pt,
},
every label/.style={
inner sep=1pt,
},
every pin/.style={
pin edge={thin, black, shorten <=3pt},
pin distance=1cm,
anchor=north,
inner sep=1pt,
}
}
\begin{document}
\begin{tikzpicture}[font=\tiny]
\draw[thick] (1,0) -- (15,0) node[fuzzy, label={below right:{(0)}}];
\foreach \x in {2,3,5,7,11,13} {
\path (\x,0) node[dot, label={below:{(\x)}}];
\ifnum\x<12\relax
\draw[thick] (\x,1) -- ++(0,2)
\ifnum\x=2\relax
node[fuzzy, label={above left:{(\x)}}];
\else
node[fuzzy, label={above right:{(\x)}}];
\fi
\fi
}
\draw[thick] (15,1) -- ++(0,2)
node[fuzzy, inner sep=9pt, label={above right:{(0)}}];
\draw[thick]
(2,1.75)
to[out=270, in=270, distance=15pt]
(3,1.75)
to[out=270, in=180, distance=25pt]
(5,1.75)
to[out=0, in=180] (6,1.375) to[out=0, in=180]
(7,1.75)
to[out=0, in=180] (11,1.375)
node[dot, pin={330:{$(11, x+5)$}}]
to
(13,1.375) node[dot]
to[out=0, in=180]
(15,1.75);
\draw[thick]
(2,1.75) node[dot, pin={240:{$(2, x-1)$}}]
to[out=90, in=90, distance=15pt]
(3,1.75) node[dot, pin={300:{$(3, x)$}}]
to[out=90, in=180, distance=25pt]
(5,1.75) node[big dot, pin={300:{$(5, x^2-3)$}}]
to[out=0, in=180] (6,2.125) to[out=0, in=180]
(7,1.75) node[big dot]
to[out=0, in=180] (11,2.175)
node[dot, pin={30:{$(11, x-5)$}}]
to
(13,2.175) node[dot]
to[out=0, in=180]
(15,1.75)
node[fuzzy, pin={240:{$(x^2-3)$}}];
\end{tikzpicture}
\end{document}