对于习惯的人来说,这可能是一个简单的方法。我想用图案(例如条纹)填充两个函数之间的区域。请参阅下面的代码。我看到了类似这样的 [domain]-option,但不知道该方案是如何工作的,也许我完全错了 :D
工作:
填充红色和黑色函数之间的差异
到目前为止感谢
\def\dtwData{graphics/data/dtwSimple.txt}
\begin{tikzpicture}
%Points
\coordinate (x-start) at (0cm, 2cm);
\coordinate (x-end) at (15cm, 2cm);
\begin{scope}[thick]
\draw[] (0,0) -- (0,6);
\draw[] (x-start) -- (x-end);
\end{scope}
\draw[color=red, thick] (0, 1) -- (14, 6);
\draw[color=blue, dashed] (0, 1.75) -- (14, 6.75);
\draw[color=blue, dashed] (0, 0.25) -- (14, 5.25);
%plot
\draw[thick] plot[smooth] file {\dtwData};
\end{tikzpicture}
答案1
您需要重新创建相同的路径,即复制两个命令的代码\draw
,然后使用带有选项的结果路径\fill
。使用\fill (0,1) -- (14,6) (0,0) plot[smooth] file {\dtwData}
可能会成功。还有一些选项可以让您更改填充与自身相交的路径的规则。有关详细信息,请参阅 PGF 手册。
答案2
以下是我的最终设计图,仅供参考
\def\dtwData{graphics/data/dtwSimple.txt}
\begin{tikzpicture}[scale=0.8]
\coordinate (x-start) at (0cm, 2cm);
\coordinate (x-end) at (15cm, 2cm);
\begin{scope}[]
\draw[-latex'] (0,0) -- (0,6);
\draw[-latex'] (x-start) -- (x-end);
\draw (13.75,1.7) node[right] {\footnotesize $Zeit$};
\draw (0,5.75) node[left] {\footnotesize $Wert$};
\end{scope}
\fill [color=gray!20, opacity=0.01] (0,0.25) -- (0, 1.75) -- (14, 6.75) -- (14, 5.25) ;
\draw[color=gray, opacity=0.5] (0, 1.75) -- (14, 6.75);
\draw[color=gray, opacity=0.5] (0, 0.25) -- (14, 5.25);
%plot
\draw[thick] plot[smooth] file {\dtwData};
\fill[color = gray!60, opacity=0.1] (0,1) -- (14,6) (0,0) plot[smooth] file {\dtwData};
\fill[pattern color = gray, pattern = north east lines, opacity=0.8] (0,1) -- (14,6) (0,0) plot[smooth] file {\dtwData};
\draw[color=gray, thick] (0, 1) -- (14, 6);
\draw[latex'-latex'] (14.15, 5.25) -- (14.15, 6.75);
\draw (14.2, 6) node[right] {\footnotesize $Grenzen$};
\draw[-latex'] (4, 5.75) to[out=0,in=90] (6.8, 3.45);
\draw (3.8, 5.75) node[left, gray] {\footnotesize $Vorlage$};
\draw[-latex'] (4, 5) to[out=0,in=90] (6, 3.4);
\draw (3.8, 5) node[left] {\footnotesize $Vergleichsdaten$};
\draw[-latex'] (11.3, 3) to[out=180,in=-90] (7.7, 3.5);
\draw (11.5, 3) node[right] {\footnotesize $Differenz$};
\end{tikzpicture}