在曲线之间填充 tikz?

在曲线之间填充 tikz?

如何填充 f(x)=-1/x 的行间?

这是我迄今为止的代码...

\documentclass{article}

\usepackage{tikz,pgfplots}
\usepackage{wrapfig}

\begin{document}

\begin{wrapfigure}{l}{8cm}
    \centering
    \begin{tikzpicture}
        \begin{axis}
        [  
        width=8cm,
        height=8cm,
        axis lines=center, 
        domain=-5:5,
        samples=100,
        xmin=-5, xmax=5,
        ymin=-5, ymax=5 
       ]

        \addplot[smooth, thick] {-(1/x)};
        \end{axis}
    \end{tikzpicture}
    \caption{A graph of $\hat{V}(r)\approx -\frac{1}{r}$}
\end{wrapfigure}

\end{document}

答案1

以下代码将产生您想要的结果:

\documentclass{article}

\usepackage{tikz,pgfplots}
\usepackage{wrapfig}

\usepgfplotslibrary{fillbetween}

\begin{document}

\begin{wrapfigure}{l}{8cm}
    \centering
    \begin{tikzpicture}
        \begin{axis}
        [  
        set layers, axis on top,
        width=8cm,
        height=8cm,
        axis lines=center, 
        domain=-5:5,
        samples=100,
        xmin=-5, xmax=5,
        ymin=-5, ymax=5 
       ]

        % draw the curve
        \addplot[smooth, thick, samples=100] {-(1/x)};

        % generate the required paths
        \addplot[smooth, thick, domain=-5:-0.1, name path=A, draw=none] {-(1/x)} -- (axis cs: 5, 5);
        \addplot[smooth, thick, domain=5:0.1, name path=B, draw=none] {-(1/x)} -- (axis cs: -5, -5);

        % fill
        \addplot[green] fill between [of=A and B];
        \end{axis}
    \end{tikzpicture}
    \caption{A graph of $\hat{V}(r)\approx -\frac{1}{r}$}
\end{wrapfigure}

\end{document}

除了您已有的内容之外,您还必须添加一些东西:

  • 作为JLo0815注意,您可以使用fillbetween库。但是,1/x 函数不是连续的,因此您必须手动扩展路径。我通过将路径延伸到 x/y 范围的最大值来实现此目的。
  • 要显示轴,您需要添加set layersaxis on top风格。

此外,在做事时要小心:绘制 1/x 会产生非常高的数字接近于零,这就是为什么我使用 0.1 作为路径的范围限制,否则你最终会得到

! 尺寸太大

错误。另外,正如你似乎知道的(或者你很幸运),你需要使用偶数个样本,否则将包括 x=0,这(显然)也会失败。

最后得到如下图表:

在此处输入图片描述

哦,最后但并非最不重要的一点是:请提供在职的下次是 MWE,包括\documentclass和包。

相关内容