PGFplots: fester Maßstab und feste Dimension

PGFplots: fester Maßstab und feste Dimension

Ich habe zwei pgfplots-Achsen nebeneinander mit denselben Abmessungen. Die Achsen sollten ausgerichtet sein und dieselbe Achsenskalierung verwenden. Dies führt zu einer Situation, in der ich und die Einheitsvektoren angebe width. Das heightErgebnis ist, dass die angegebenen Einheitsvektoren die Achsendimensionen überschreiben.xy

\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}

Das MWE sieht folgendermaßen aus:

aktuelle Situation, mwe

Ich möchte, dass es so aussieht (erreicht durch das Festlegen tatsächlicher Achsengrenzen, sodass die Skalierung anders ist):

erwartetes Ergebnis

Der Koordinatenmittelpunkt liegt nicht an einer bekannten Stelle, daher kann ich die Achsengrenzen nicht einfach direkt festlegen.

Gibt es eine Möglichkeit, dies direkt in pgfplots zu tun? Vielleicht pgfplots anweisen, zwischen mehreren Diagrammen dieselbe Achsenskalierung zu verwenden? Ich habe die Kapitel 4.10 („Skalierungsoptionen“) und 4.14 („Angeben des dargestellten Bereichs“) des pgfplots-Handbuchs durchgesehen, konnte aber keine Lösung finden.

Ansonsten denke ich daran, die Achsenumgebungen (mit festen Einheitsvektoren) in die Mitte von Knoten fester Größe zu platzieren, sodass die einheitliche Skalierung erhalten bleibt und die äußeren Boxen gleich sind.

Antwort1

Hier ist eine Hack-Lösung, die einfach Knoten mit fester Größe zeichnet und die pgfplots-Achsen in deren Mitte platziert.

Es erreicht das in der Frage gestellte visuelle Ziel, weist jedoch für die allgemeine Nützlichkeit zwei wesentliche Nachteile auf:

  • Wenn der Inhalt zu groß ist, überschreitet er die Knotengrenzen
  • Wenn Häkchen oder andere Beschriftungen benötigt werden, werden diese an den eigentlichen ausgeblendeten Achsen angezeigt.
\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}

verwandte Informationen