pgfplots: 3D 関数の 2D 等高線プロット: 軸ラベルの配置

pgfplots: 3D 関数の 2D 等高線プロット: 軸ラベルの配置

私は pgfplots を使用して、\addplot3(x,y) 平面に表示される 2 変数関数の等高線図をプロットしています ( を使用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}

PS: ウラジミールは私よりも速かったです...:)

答え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}

およびパラメータxshiftyshift省略できます。

関連情報