pgfplots: 2D-Konturdiagramm einer 3D-Funktion: Platzierung der Achsenbeschriftungen

pgfplots: 2D-Konturdiagramm einer 3D-Funktion: Platzierung der Achsenbeschriftungen

Ich verwende pgfplots, \addplot3um Konturdiagramme von Funktionen mit zwei Variablen zu zeichnen, wie sie in der (x,y)-Ebene zu sehen sind (mit view={0}{90}). Die Standardplatzierung der Achsenbeschriftungen ist jedoch seltsam (ich vermute, aufgrund der 3D-Darstellung).

Ich möchte das x rechts vom Pfeil der x-Achse und das y über dem Pfeil der y-Achse haben. Ich bin diesem Beispiel gefolgt.Frage, aber das Ändern des Ankers xlabel stylescheint nichts an der Grafik zu ändern.

MWE:

\documentclass{standalone}
\usepackage{tikz,pgfplots}
\pgfplotsset{
        % use `compat' level 1.8 or higher
        compat=1.8,
        % just put all the options in here and it will work as expected
        every axis/.append style={
            axis lines=center,
            xlabel style={anchor=south west},
            ylabel style={anchor=south west},
            zlabel style={anchor=south west},
            tick align=outside,
        },
    }
\begin{document}
 \begin{tikzpicture}[scale=0.85,font=\large]
 
 \begin{axis}[ ,
    axis lines=center,
    view={0}{90},
    xlabel=$x$, ylabel=$y$,     
    ]
 \addplot3 [
    contour gnuplot={levels={0.5,2}},
    domain=0:2,y domain=0:2
 ] {2*x*y };
 \end{axis}
 \end{tikzpicture} 
\end{document}

Bildbeschreibung hier eingeben

Antwort1

Es scheint, dass beim Definieren des Achsenbeschriftungsstils \pgfplotsetdie Stileigenschaften nicht an Gnuplot übergeben werden. Daher müssen Sie ihn in der Achsenumgebung definieren. Sie können die Position der Beschriftungen auch folgendermaßen steuern:

x label style={at={(axis description cs:1.1,0.0)},anchor=center},

Bildbeschreibung hier eingeben

MWE:

\documentclass{standalone}
\usepackage{tikz,pgfplots}
\pgfplotsset{
        % use `compat' level 1.8 or higher
        compat=1.8,
    }
\begin{document}
 \begin{tikzpicture}[scale=0.85,font=\large]
 
 \begin{axis}[ ,
    axis lines=center,
    view={0}{90},
    xlabel=$x$, ylabel=$y$,
%    x label style={anchor=south west},
%    y label style={anchor=south west},
    x label style={at={(axis description cs:1.1,0.0)},anchor=center},
    y label style={at={(axis description cs:0.0,1.1)},anchor=center},
    ]
 \addplot3 [
    contour gnuplot={levels={0.5,2}},
    domain=0:2,y domain=0:2
 ] {2*x*y};
 \end{axis}
 \end{tikzpicture} 
\end{document}

PS: Vladimir war schneller als ich ...:)

Antwort2

Sie können die Position der Achsenbeschriftungen innerhalb der Achsenumgebung festlegen.

Bildbeschreibung hier eingeben

\documentclass{standalone}
\usepackage{tikz,pgfplots}
\pgfplotsset{
    % use `compat' level 1.8 or higher
    compat=1.8,
    % just put all the options in here and it will work as expected
    every axis/.append style={
        axis lines=center,
        tick align=outside,
    },
}

\begin{document}
\begin{tikzpicture}[scale=0.85,font=\large]
 
 \begin{axis}[ ,
    axis lines=center,
    view={0}{90},
    xlabel style={right, yshift=5pt},
    ylabel style={above, xshift=5pt},
    xlabel=$x$, ylabel=$y$,
    domain=0:2,y domain=0:2,     
    ]
 \addplot3 [
    contour gnuplot={levels={0.5,2}},
    samples=50,
 ] {2*x*y };
 \end{axis}
 \end{tikzpicture} 
\end{document}

Die Parameter xshiftund yshiftkönnen weggelassen werden.

verwandte Informationen