我想填充两条曲线之间的区域,并在填充下方显示网格线。可以吗?
(从使用 PGFplot 在绘图填充上方显示网格?我认为axis on bottom
可能会有效,但这似乎不是一个命令。)
编辑:填充方法是填充 pgfplots 计算的两条曲线之间的区域由 Christian Feuersanger 编写,需要最新版本的pgfplots
。
\documentclass{standalone}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=1.10}
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis lines = middle,
smooth,
no markers,
xlabel = {$x$},
ylabel = {$y$},
minor tick num =1,
grid=both,
domain=0:2,]
\addplot+[domain=0:1,samples=200,name path=A,black] {sqrt(x)};
\addplot+[domain=0:1,name path=B,black] {x};
\addplot[blue!50] fill between[of=A and B];
\end{axis}
\end{tikzpicture}
\end{document}
答案1
如果您set layers
在 axis 环境中添加选项,它会将 hierarchricrhchaheal(!?) 顺序设置为standard
图层顺序,即axis background, axis grid, axis ticks, axis lines, axis tick labels, main, axis descriptions, axis foreground
。这只是切换了绘制顺序。因此,这是功能而不是错误。否则,您可以将图层重新排序为自定义图层样式
\documentclass{standalone}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=1.10}
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{tikzpicture}
\begin{axis}[set layers,
axis lines = middle,
smooth,
no markers,
xlabel = {$x$},
ylabel = {$y$},
minor tick num =1,
grid=both,
domain=0:2,]
\addplot+[domain=0:1,samples=200,name path=A,black] {sqrt(x)};
\addplot+[domain=0:1,name path=B,black] {x};
\addplot[blue!50] fill between[of=A and B];
\end{axis}
\end{tikzpicture}
\end{document}
答案2
percusse 的回答是正确的。
令我困惑的是,它pgfplots
应该在遇到情节时立即自动执行此操作fill between
。
因此,还有第二个答案:
这是一个错误,将在下一版本的 pgfplots 中修复(可能1.11
一旦准备好)。