PGFplots: escala fija y dimensión fija

PGFplots: escala fija y dimensión fija

Tengo dos ejes de pgfplots uno al lado del otro con las mismas dimensiones. Los ejes deben estar alineados y utilizar la misma escala de eje. Esto lleva a una situación en la que especifico widthy heightlos vectores unitarios xy y. El resultado es que los vectores unitarios especificados anulan las dimensiones del eje.

\documentclass[tikz,margin=10pt]{standalone}
\usepackage{pgfplots}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}

    \begin{axis}[
        width=6cm,
        height=6cm,
        x=5mm,
        y=5mm,
        ticks=none,
        name=ax1
    ]
    \addplot[only marks] coordinates {(-1,-1) (0,0) (1,1)};
    \end{axis}

    \begin{axis}[
        width=6cm,
        height=6cm,
        x=5mm,
        y=5mm,
        ticks=none,
        name=ax2,
        at={($(ax1.south east)+(2mm,0)$)},
    ]
    \addplot[only marks] coordinates {(9.5,10.5) (10,10) (10.5,9.5)};
    \end{axis}

\end{tikzpicture}
\end{document}

El MWE se ve así:

situación actual, mwe

Me gustaría que se viera así (logrado estableciendo límites de eje reales, por lo que la escala es diferente):

gastos esperados

El centro de coordenadas no está en una ubicación conocida, por lo que no puedo simplemente establecer los límites del eje directamente.

¿Hay alguna manera de hacer esto directamente en pgfplots? ¿Quizás decirle a pgfplots que use la misma escala de eje entre múltiples gráficos? Revisé los Capítulos 4.10 ("Opciones de escala") y 4.14 ("Especificación del rango trazado") del manual de pgfplots, pero no pude encontrar una solución.

De lo contrario, estoy pensando en colocar los entornos de los ejes (con vectores unitarios fijos) en el centro de los nodos de tamaño fijo, de modo que se conserve la escala uniforme y los cuadros exteriores sean los mismos.

Respuesta1

Aquí hay una solución hacky que simplemente dibuja nodos de tamaño fijo y coloca los ejes de pgfplots en su centro.

Logra el objetivo visual planteado en la pregunta, pero tiene dos inconvenientes importantes para ser útil en general:

  • Si el contenido es demasiado grande, excederá los límites del nodo.
  • Si se necesitan marcas u otro etiquetado, se mostrarán en los ejes ocultos reales.
\documentclass[tikz,margin=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}

    % Draw the visible plot boundaries as fixed size nodes
    \node[minimum width=6cm, minimum height=6cm, draw] (A) {};
    \node[minimum width=6cm, minimum height=6cm, draw, right=2mm of A] (B) {};

    % Draw the axis without axis lines, with specified scaling,
    % in the middle of the nodes
    \begin{axis}[
        axis line style={draw=none},
        anchor=center,
        x=5mm,
        y=5mm,
        ticks=none,
        at=(A.center),
    ]
    \addplot[only marks] coordinates {(-1,-1) (0,0) (1,1)};
    \end{axis}

    \begin{axis}[
        axis line style={draw=none},
        anchor=center,
        x=5mm,
        y=5mm,
        ticks=none,
        at=(B.center),
    ]
    \addplot[only marks] coordinates {(9.5,10.5) (10,10) (10.5,9.5)};
    \end{axis}

\end{tikzpicture}
\end{document}

información relacionada