pgfplots 中“范围 + 移位”和“填充之间”之间的相互作用

pgfplots 中“范围 + 移位”和“填充之间”之间的相互作用

我正在尝试使用 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}

现在,发生了以下事情:

  1. 如果将 A、B 行注释掉,并将 C 行注释掉不是注释掉后,从 (0,0) 到 (5,5) 的“线”将穿过“已填满”的三角形。具体来说,“三角形”确实已填满。

  2. 如果线 A,B不是注释掉了,但是 C 行被注释掉了,那么三角形就不再填充(正如预期的那样),并且从 (0,0) 到 (5,5) 的“线”位于包含三角形的实际“图”的左侧(由于偏移而预期的那样)。

  3. 如果没有任何行 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}

输出

如果你遇到任何麻烦请告诉我。

相关内容