Wie füllt man einen durch Gitterlinien und -achsen begrenzten Bereich?

Wie füllt man einen durch Gitterlinien und -achsen begrenzten Bereich?

Mit pgfplotskann man axisdie Optionen minor xtickund minor ytickzusammen mit verwenden grid=minor, um manuell Gitternetzlinien zu erzeugen. Wenn man solche Gitternetzlinien verwendet, möchte man möglicherweise einen bestimmten Bereich, der durch die Gitternetzlinien und die Achsen begrenzt ist, hervorheben, indem man ihn mit einer Farbe füllt. Ist das möglich?

Hier ist ein Beispiel, um das Problem zu veranschaulichen. Angenommen, ich habe Folgendes

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

das erzeugt

Mit Beispielcode erstelltes Diagramm

und sagen wir, ich möchte den oberen rechten Bereich hervorheben, der durch die Gitternetzlinien und Achsen begrenzt ist. Wie kann ich das tun? Das heißt, ich möchte so etwas wie das Folgende erzeugen:

Diagramm mit ausgefülltem Bereich, der durch die Gitternetzlinien und die Achsen begrenzt ist

Antwort1

Sie können hierfür einen normalen TikZ \fill-Befehl in Kombination mit den axis cs:Koordinatensystemen und verwenden. Die im Formular angegebenen Koordinaten beziehen sich auf die Koordinate im Datenkoordinatensystem, während sich auf die obere rechte Ecke der Plotfläche bezieht. In Ihrem Fall könnten Sie verwendenrel axis cs:(axis cs:2,3)2,3rel axis cs:1,1

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

vor Ihrem \addplotBefehl, um den rechteckigen Bereich zu schattieren. Beachten Sie, dass Sie festlegen möchten axis on top, da der farbige Bereich sonst die Markierungen und Achsenlinien überlagern würde.

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

verwandte Informationen