pgfplots: Wie kommentiert man ein Intervall?

pgfplots: Wie kommentiert man ein Intervall?

Für das folgende MWE möchte ich ein Intervall (z. B. [2, 4]) kommentieren, wie in der gewünschten Ausgabe dargestellt.

Außerdem muss ich wissen, wie ich die vertikalen Linien und den horizontalen Pfeil stilisiere.

\documentclass[border=1cm]{standalone}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[
    xmin=0,xmax=5
    ]
        \addplot[mark=none,blue] {x^2};

    \end{axis}
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Antwort1

Für den Text der Anmerkung können Sie die decorations.text tikzBibliothek verwenden.

Zur Stilisierung können Sie dem Befehl alle gewünschten Optionen hinzufügen \draw. Hier ist ein Beispiel:

\documentclass[border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{decorations.text}    

\begin{document}
    \begin{tikzpicture}
    \begin{axis}[
    xmin=0,xmax=5
    ]
    \addplot[mark=none,blue] {x^2};
    \draw[red, dashed] (2, \pgfkeysvalueof{/pgfplots/ymin}) -- (2, \pgfkeysvalueof{/pgfplots/ymax});
    \draw[green, thick, dotted] (4, \pgfkeysvalueof{/pgfplots/ymin}) -- (4, \pgfkeysvalueof{/pgfplots/ymax});
    \draw[blue, very thick, {Stealth}-{Stealth}, postaction={decoration={raise=3pt, text along path, text={some text},text align=center}, decorate}] (2,5) -- (4,5);
    \end{axis}
    \end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Bearbeiten:

Wie vom OP gefordert, habe ich den Stil \mylinefür die vertikalen Linien erstellt (und auch \myarroweinen für den Pfeil des Intervalls).

Außerdem habe ich mit der tikzManie übertrieben. Wie Torbjørn T. richtig bemerkte, text along pathist die Verwendung von a für eine gerade Linie übertrieben. Sie können einfach einen Knoten über den Pfad setzen, ohne die decorations.textBibliothek zu benötigen.

\documentclass[border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\usetikzlibrary{arrows.meta}
\tikzset{%
    myline/.style = {green, very thick, dashed},
    myarrow/.style = {blue, very thick, {Stealth}-{Stealth}},
}

\begin{document}
    \begin{tikzpicture}
    \begin{axis}[
    xmin=0,xmax=5
    ]
    \addplot[mark=none,blue] {x^2};
    \draw[myline] (2, \pgfkeysvalueof{/pgfplots/ymin}) -- (2, \pgfkeysvalueof{/pgfplots/ymax});
    \draw[myline] (4, \pgfkeysvalueof{/pgfplots/ymin}) -- (4, \pgfkeysvalueof{/pgfplots/ymax});
    \draw[myarrow] (2,5) -- node[above] {some text} (4,5);
    \end{axis}
    \end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Zweite Bearbeitung:

Ich habe ein picmit drei erstellt args: Anfangs- x, End- xund Pfeilhöhe y(letzterer könnte durch einen festen Wert ersetzt werden, wenn er immer gleich ist, und das so geändert werden, picdass nur zwei verwendet werden args).

\documentclass[border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\usetikzlibrary{arrows.meta}
\tikzset{%
    myline/.style = {green, very thick, dashed},
    myarrow/.style = {blue, very thick, {Stealth}-{Stealth}},
    pics/myint/.style n args={3}{code={%  
            \draw[myline] (#1, \pgfkeysvalueof{/pgfplots/ymin}) -- (#1, \pgfkeysvalueof{/pgfplots/ymax});
            \draw[myline] (#2, \pgfkeysvalueof{/pgfplots/ymin}) -- (#2, \pgfkeysvalueof{/pgfplots/ymax});
            \draw[myarrow] (#1,#3) -- node[above] {some text} (#2,#3);
    }},
}

\begin{document}
    \begin{tikzpicture}
    \begin{axis}[
    xmin=0,xmax=5
    ]
    \addplot[mark=none,blue] {x^2};
    \pic {myint={2}{4}{5}};
    \end{axis}
    \end{tikzpicture}
\end{document} 

Natürlich \pic {myint={2}{4}{5}};ist die Ausgabe mit die gleiche wie die vorherige.

verwandte Informationen