pgfplots: 3D 함수의 2D 등고선 플롯: 축 레이블 배치

pgfplots: 3D 함수의 2D 등고선 플롯: 축 레이블 배치

나는 \addplot3(x,y) 평면에서 볼 수 있듯이 두 변수 함수의 등고선 플롯을 플롯하기 위해 pgfplots를 사용하고 있습니다 view={0}{90}. 그러나 축 레이블의 기본 배치는 이상합니다(3D 방식 때문에 의심됩니다).

x축 화살표 오른쪽에 x를 두고 y축 화살표 위에 y를 두고 싶습니다. 나는 이것을 따랐다질문, 그러나 앵커를 변경해도 xlabel style그래프에는 아무 것도 변경되지 않는 것 같습니다.

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}

여기에 이미지 설명을 입력하세요

답변1

축 레이블 스타일을 정의해도 \pgfplotset스타일 속성이 Gnuplot에 전달되지 않는 것 같습니다. 따라서 축 환경에서 정의해야 합니다. 다음을 사용하여 라벨 위치를 제어할 수도 있습니다.

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

여기에 이미지 설명을 입력하세요

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}

추신: Vladimir는 나보다 빨랐습니다...:)

답변2

축 환경 내에서 축 레이블의 위치를 ​​지정할 수 있습니다.

여기에 이미지 설명을 입력하세요

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

xshift및 매개 yshift변수는 생략될 수 있습니다.

관련 정보