使用函数绘图时tikz
,必须指定某个域。但是,如果函数在指定域之外继续,则最好在其边缘处有经典的三个点,表示函数确实继续。
我不知道该如何实现这一点,如能得到任何帮助我将非常感谢。
一个非常简单的 MWE 可能是:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[domain=-1.5:1.5, smooth, samples=250] plot (\x,{\x*\x});
\end{tikzpicture}
\end{document}
可以看出,抛物线的两端没有显示任何点。
答案1
这是一个建议。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}[continue/.style={postaction=decorate,decoration={markings,
mark=at position 0 with {\draw[continuation] (0pt,0pt) -- (-#1,0pt);},
mark=at position 1 with {\draw[continuation] (0pt,0pt) -- (#1,0pt);}
}},continue/.default=2em,continuation/.style={densely dotted}]
\draw[continue] plot[domain=-1.5:1.5, samples=250] (\x,{\x*\x});
\end{tikzpicture}
\end{document}
请注意,此提案使用了装饰,因此并不总是适用于smooth
。特别是,在您的用例中它不适用。但是,250 个样本非常慷慨,平滑和不平滑之间没有真正的区别(在本例中)。在这种情况下,如果这会产生影响,您可以装饰非平滑图并绘制平滑图:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}[continue/.style={postaction=decorate,decoration={markings,
mark=at position 0 with {\draw[continuation] (0pt,0pt) -- (-#1,0pt);},
mark=at position 1 with {\draw[continuation] (0pt,0pt) -- (#1,0pt);}
}},continue/.default=2em,continuation/.style={densely dotted}]
\path[continue] plot[domain=-1.5:1.5, samples=250] (\x,{\x*\x});
\draw plot[domain=-1.5:1.5,smooth, samples=250] (\x,{\x*\x});
\end{tikzpicture}
\end{document}