Como preencher uma área delimitada por linhas e eixos de grade?

Como preencher uma área delimitada por linhas e eixos de grade?

Com pgfplotsum pode axisusar as opções minor xticke minor ytickem conjunto grid=minorproduzir linhas de grade manualmente. Se usarmos essas linhas de grade, poderemos querer enfatizar uma determinada região delimitada pelas linhas de grade e pelos eixos, preenchendo-a com alguma cor. Isso é possível?

Aqui está um exemplo para ilustrar o problema. Digamos que eu tenha o seguinte

\documentclass{article}

\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    minor ytick={2},
    minor xtick={2},
    grid=minor
    ]
    \addplot{x};
  \end{axis}
\end{tikzpicture}

\end{document}

que produz

Gráfico produzido por código de exemplo

e digo que quero enfatizar a região superior direita que é delimitada pelas linhas de grade e pelos eixos. Como posso fazer isso? Ou seja, para produzir algo como o seguinte:

Lote com preenchimento em região delimitada pelas linhas de grade e pelos eixos

Responder1

Você pode usar um \fillcomando TikZ normal em combinação com os axis cs:sistemas rel axis cs:de coordenadas para isso. As coordenadas fornecidas no formulário (axis cs:2,3)referem-se às coordenadas 2,3no sistema de coordenadas de dados, enquanto rel axis cs:1,1se referem ao canto superior direito da tela de plotagem. No seu caso, você poderia usar

\fill [orange!25] (axis cs:2,2) rectangle (rel axis cs:1,1);

antes do seu \addplotcomando para sombrear a área retangular. Observe que você desejará definir axis on top, pois a área colorida se sobreporia às marcas de escala e às linhas do eixo.

\documentclass{article}

\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    minor ytick={2},
    minor xtick={2},
    grid=minor,
    axis on top
    ]
    \fill [orange!25] (axis cs:2,2) rectangle (rel axis cs:1,1);
    \addplot{x};
  \end{axis}
\end{tikzpicture}

\end{document}

informação relacionada