Interacción entre ejes igual = verdadero y xmin (y, supongo, xmax)

Interacción entre ejes igual = verdadero y xmin (y, supongo, xmax)

Quiero sombrear una región en mi parcela mientras uso axes equal=true. Sin embargo, parte de lo que supuse estaría sombreado, no lo está. Este es mi MWE

\documentclass{article}
\usepackage{pgfplots}

\pgfplotsset{compat=1.17} 

\begin{document}

     \begin{figure}
     \centering
     \begin{tikzpicture}
        \begin{axis}[ 
           axis equal=true,
           axis lines=middle,
           axis on top,
           ticks=none, 
           xmin=-3,xmax=3,
           ymin=-3,ymax=3,
           ]
          \addplot[draw=none,fill=gray!20!white] (-3,-3) -- (-1.125,-3) -- (0.375,3) -- (-3,3) -- cycle;
        \end{axis}
     \end{tikzpicture}
     \end{figure}

\end{document}

y este es el resultado que obtengo

ingrese la descripción de la imagen aquí

Por alguna razón, el uso de equal axis=truehace que el eje x se extienda más allá del xminvalor, lo que hace que mi área sombreada sea demasiado pequeña. Sin embargo, si comento equal axis=truelas instrucciones, el área sombreada se ve exactamente como la quiero (pero necesito las equal axis=trueinstrucciones para asegurarme de que las perpendiculares que pretendo dibujar se vean realmente perpendiculares).

ingrese la descripción de la imagen aquí

Respuesta1

El manual de pgfplots menciona (sección 4.10.1 Opciones de escala comunes, el énfasis es mío):

/pgfplots/axis equal={true,false}
Cada vector unitario se establece en la misma longitud mientras las dimensiones del eje permanecen constantes. Posteriormente, las proporciones de tamaño para cada unidad en xey serán las mismas.
Los límites del eje se ampliaránpara compensar el efecto de escala.

De hecho, xminno se respeta el entorno. Después de los ejemplos, el manual menciona:

La configuración axis equal=truees en realidad sólo un estilo que establece unit vector ratio=1 1 1, unit rescale keep size=true.

Buscando unit rescale keep size:

/pgfplots/unit rescale keep size=true|false|unless limits declared
En la configuración predeterminada, pgfplots mantiene las dimensiones del eje original aunque la relación de vectores unitarios implique diferentes escalas. Lo hace ampliando los límites.

Establecer esto en unless limits declaredevita el xmincambio. No estoy 100% seguro de que esta configuración (combinada con unit vector ratio=1 1 1) realmente cree ejes iguales, pero parece funcionar. Código:

\documentclass{article}
\usepackage{pgfplots}

\pgfplotsset{compat=1.17} 

\begin{document}

     \begin{figure}
     \centering
     \begin{tikzpicture}
        \begin{axis}[ 
           %axis equal=true,
           unit vector ratio=1 1 1,
           unit rescale keep size=unless limits declared,
           axis lines=middle,
           axis on top,
           ticks=none,
           xmin=-3,xmax=3,
           ymin=-3,ymax=3,
           ]
          \addplot[draw=none,fill=gray!20!white] (-3,-3) -- (-1.125,-3) -- (0.375,3) -- (-3,3) -- cycle;
        \end{axis}
     \end{tikzpicture}
     \end{figure}

\end{document}

información relacionada