
Acabei de começar a usar o preenchimento entre bibliotecas e é muito útil, mas admito que às vezes é uma caixa preta para mim.
Por exemplo, se eu quiser preencher o espaço delimitado por y=x^2 e y=2-x^2 (portanto, recorte o preenchimento para ficar entre -1 e 1), então tentei originalmente isso.
Então adicionei apenas uma pequena alteração (diminuí um pouco o ymin) e consegui o que queria. Alguém pode explicar o que está acontecendo?
O código que usei para a primeira foto está abaixo. Para obter a segunda imagem, defina ymin=-.1 em vez de ymin=0. Também notei que se você se livrar do clipe suave no preenchimento, obterá a imagem a seguir, que faz sentido para mim. Então deve ser algo com o clipe macio que está bagunçado.
\documentclass{standalone}
\usepackage{tikz,pgfplots}
\usepgfplotslibrary{fillbetween}
\pgfplotsset{compat=1.3}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-2,xmax=2,
ymin=0,ymax=4,
height = 6cm,
minor tick num=1,
axis lines=center,
axis line style=<->]
\addplot[name path=F,blue,domain={-2:2}] {-x^2+2};
\addplot[name path=G,green,domain={-2:2}] {x^2};
\addplot[color=brown!50]fill between[of=F and G, soft clip={domain=-1:1}];
\end{axis}
\end{tikzpicture}
\end{document}
Responder1
A área a ser preenchida pode ser identificada usando soft clip={(-1,-1) rectangle (1,4)}
. Isto identifica a área de corte com um retângulo delineado por uma coordenada esquerda (-1-1)
e uma coordenada direita (1,4)
. Para evitar que o preenchimento seja colocado em cima dos eixos, axis on top
deve-se adicionar opções de eixos. A tikz
biblioteca de padrões é usada para preencher a área com arquivos pattern=north east lines
.
Este é o resultado:
Este é o MWE:
\documentclass[tikz,border=5pt]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\usetikzlibrary{patterns}
\pgfplotsset{compat=1.15}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-2,xmax=2,
ymin=0,ymax=4,
height = 6cm,
minor tick num=1,
axis lines=center,
axis line style=<->,
axis on top
]
\addplot[name path=G,green,domain={-2:2}] {x^2};
\addplot[name path=F,blue,domain={-2:2}] {-x^2+2};
\addplot[pattern=north east lines] fill between [
of=F and G,
soft clip={(-1,-1) rectangle (1,4)}
];
\end{axis}
\end{tikzpicture}
\end{document}
Responder2
O manual pgf descreve uma solução da seguinte forma:
\documentclass{standalone}
\usepackage{tikz,pgfplots}
\usepgfplotslibrary{fillbetween}
\pgfplotsset{compat=1.3}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-2,xmax=2,
ymin=0,ymax=4,
height = 6cm,
minor tick num=1,
axis lines=center,
axis line style=<->
]
\addplot[name path=G,green,domain={-2:2}] {x^2};
\addplot[name path=F,blue,domain={-2:2}] {-x^2+2};
% \addplot[color=blue!50]fill between[of=G and F, split, clip={domain=-1:1}];
\tikzfillbetween [of=F and G,split,every even segment/.style={white!1}] {red!50};
\end{axis}
\end{tikzpicture}
\end{document}
Acho que o problema com o eixo não é desejado, mas tenho certeza de que a substituição pode ser resolvida de alguma forma.