通过扫描此处的问答,我了解到我需要添加库之间的填充。但是,它旨在填充曲线之间,而我想填充曲线和轴之间以指示积分。我尝试定义一个新的命名路径(floor)作为 -0.5 和 +0.5 之间的 x 轴。这是我的代码:
\documentclass{amsbook}
%
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepgfplotslibrary{fillbetween}
%
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[name path = parab, domain =-1:1,] {x^2};
\addplot[name path = floor, draw=none] coordinates {(-0.5,0) (0.5,0)};
\addplot[color=gray] fill between[of = parab and floor];
\end{axis}
\end{tikzpicture}
\end{document}
输出如下:
并非完全出乎意料,但不是我想要的。仅供参考,我尝试定义两条新路径 - 垂直线在 -0.5(左)和 +0.5(右),并在 [parab 和 floor 以及左和右] 之间填充,但 pgfplots 不喜欢这样。我的方法错了,还是我在使用填充时错过了一个技巧?
答案1
我不确定我是否理解正确,但至少让我尝试解释一些我认为可能有助于您解决问题的事情。
首先,您绘制一条抛物线,domain = -1:1
这意味着它从 x = -1 到 x = 1。该fill between
机制将输出两条路径之间的区域并尊重这些路径的端点。因此,如果您想要一个覆盖抛物线从 x = -1 到 x = 1 之间的空间的区域,您需要创建一条也从 x = -1 到 x = 1 的线。如果您只想遮蔽该区域的一部分,您可以使用该soft clip
选项并指定要遮蔽的域。
其次,默认情况下,绘图被方框轴包围。实际绘图和轴周围有填充。如果您不想要这样,则需要指定xmin
和xmax
或ymin
和ymax
。然后,您可以向下移动用于效果的路径fill between
,使其与下方方框轴的位置相匹配。
比较下面三个图的输出:
\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ymin = -0.1, ymax = 1.1]
\addplot[name path = parab, domain = -1:1] {x^2};
\addplot[name path = floor, draw = none] coordinates {(-1,-0.1) (1,-0.1)};
\addplot[color=gray] fill between[of = parab and floor];
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[ymin = -0.1, ymax = 1.1]
\addplot[name path = parab, domain = -1:1] {x^2};
\addplot[name path = floor, draw = none] coordinates {(-1,-0.1) (1,-0.1)};
\addplot[color=gray] fill between[of = parab and floor, soft clip = {domain = -0.5:0.5}];
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot[name path = parab, domain = -1:1] {x^2};
\addplot[name path = floor, draw = none] coordinates {(-1,0) (1,0)};
\addplot[color=gray] fill between[of = parab and floor, soft clip={domain = -0.5:0.5}];
\end{axis}
\end{tikzpicture}
\end{document}