我正在尝试使用 tikZ 和 pgfplots 绘制图片。以下是我正在做的最小化示例。
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\pgfplotsset{compat=1.12, clip bounding box=default tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) -- (5,5);
\begin{scope}[shift={(10,0)}] %line A
\begin{axis}
\addplot[name path=A, domain=1:3] {2-abs(x-2)};
\draw[name path=B, thick, black] (axis cs:1,1) -- (axis cs:3,1);
\addplot[thick, fill=red] fill between[of=A and B] ; %line C
\end{axis}
\end{scope} %line B
\end{tikzpicture}
\end{document}
现在,发生了以下事情:
如果将 A、B 行注释掉,并将 C 行注释掉不是注释掉后,从 (0,0) 到 (5,5) 的“线”将穿过“已填满”的三角形。具体来说,“三角形”确实已填满。
如果线 A,B不是注释掉了,但是 C 行被注释掉了,那么三角形就不再填充(正如预期的那样),并且从 (0,0) 到 (5,5) 的“线”位于包含三角形的实际“图”的左侧(由于偏移而预期的那样)。
如果没有任何行 A、B、C 被注释掉,那么从 (0,0) 到 (5,5) 的“线”与三角形相交(因此,范围的“偏移”为被忽略)此外,三角形不是用红色填充,尽管“填充之间”是不是注释掉了。
当然,我希望有移位,以及填充三角形,但似乎不可能同时获得两者。
我必须承认,我对 TikZ 或 pgfplots 都不太了解,因此我想知道我的代码是否有缺陷或者我是否发现了错误。
无论如何,我想知道如何同时获得“移位”和填充三角形。此外,在我的实际应用中,填充图比三角形更复杂,因此我无法在没有 pgfplots 的情况下简单地绘制三角形。
此外,我正在绘制两个独立的“子图”,并想将它们放在彼此旁边,从而进行移动。
我正在使用 pdfTeX 3.1415926-2.3-1.40.12(TeX Live 2011),但我今天下载(并安装)了最新版本的 TikZ 和 pgfplots。
答案1
也许这会有所帮助:不要使用示波器,而是沿 x 方向移动轴。写\begin{axis}[xshift=10cm]
。
另外,附注一下,你可以使用以下方法创建三角形\filldraw[red] (axis cs:1,1) -- (axis cs:2,2) -- (axis cs:3,1) -- cycle;
完整 MWE:
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\draw (0,0) -- (5,5);
\begin{axis}[xshift=10cm,xmin=1,xmax=3,ymin=1,ymax=2]
\filldraw[red] (axis cs:1,1) -- (axis cs:2,2) -- (axis cs:3,1) -- cycle;
\end{axis}
\end{tikzpicture}
\end{document}
如果你遇到任何麻烦请告诉我。