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};