在 pgf 图中使用填充时出现不需要的垂直空白

在 pgf 图中使用填充时出现不需要的垂直空白

fill between在此使用with的例子中pgfplots,我得到了 3 或 4 英寸的不需要的垂直空白。注释掉fill between可删除空白。

我以前没有遇到过这种情况。有什么想法吗?

编辑:更奇怪的是……如果我将下面代码中的函数改为 6*x^2,问题就消失了!似乎只有包含两个项的函数才会出现问题。这似乎指向pgfplots(或者至少是我的系统与 交互的方式pgfplots)是罪魁祸首。

梅威瑟:

\documentclass[reqno]{article}
\usepackage{amsmath,amssymb,amsthm,graphicx}
\textwidth=7.0in
\textheight=9.5in
\voffset=-1.25in
\hoffset=-1.25in

\usepackage{tikz}
\usepackage{tikzsymbols}
\tikzset{>=latex}

\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{fpu}

\usepgfplotslibrary{fillbetween}

\usepackage{pgfplotstable}
\usepgfplotslibrary{groupplots}

\thispagestyle{empty}
\pagestyle{empty}

\begin{document}

\begin{center}
\begin{tikzpicture}
    \begin{axis}[xlabel={$x$}, ylabel={$y$}
    ,axis lines=middle
    ,axis line style={-latex}
    ,samples=100,
    %,grid
    ,thick
    ,domain=0:3
    ,xtick={0,1,2,3,4}
    ,ytick={0,9}
    ,xmin=-.5
    ,xmax=3.5
    ,ymin=-3
    ,ymax=7
    %,xlabel shift={1in}
    %,y tick label style={yshift={5pt}}
    %,legend pos=outer north east
    ]
    \addplot[name path=f,domain=0:4,black,thick,no marks] {6*x^2-2*x^3-2};
    \draw[<->,thick] (0.75,6) -- (3.25,6);
    \node at (2,6)[above] {$(2,6)$};
    \draw[black,fill=black] (2,6) circle (1.5pt);
    \path[name path=axis] (0,0) -- (4,0);
    \node at (1.5,-2) {$p(x)=ax^2-2x^3+b$};
    \addplot [
        thick,
        smooth,
        color=black,
        fill=gray,
        fill opacity=0.3
    ]
    fill between[
        of=f and axis,
        soft clip={domain=0:2}
    ];
    \end{axis}
\end{tikzpicture}
\end{center}


\end{document}

在此处输入图片描述

答案1

我无法解释为什么这样做有效,但这确实解决了这个问题,所以我想发布它以防它对其他人有帮助:

我只是domain=0:4从第一个中删除\addplot,问题就消失了。

\addplot[name path=f,black,thick,no marks] {6*x^2-2*x^3-2};

相关内容