带有 x 轴和 y 轴刻度标签的 pgfplot 轮廓图

带有 x 轴和 y 轴刻度标签的 pgfplot 轮廓图

这是等高线图的 MWE。

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat = 1.7}

\begin{document}

\begin{tikzpicture}

    \begin{axis}[
        %   title = {$x \exp(-x^2-y^2)$}
        , xlabel = $x$
            , ylabel = $y$
            , domain = -1:1
            , y domain = -1:1
        , enlargelimits
        , view = {0}{90}
        , x tick label style={
             /pgf/number format/.cd,
             fixed,
             fixed zerofill,
             precision=1,
             /tikz/.cd
            }
          , y tick label style={
             /pgf/number format/.cd,
             fixed,
             fixed zerofill,
             precision=1,
             /tikz/.cd
            }  
        ]

       \addplot3[
            contour gnuplot={
                  number = 10
                 },
             thick
            ]
         {
            776.062 -50.812* x + 153.062 * y -76.812 *x *y
            };
    \end{axis}

\end{tikzpicture}

\end{document}

我有两个问题。我不知道如何放置 x 轴和 y 轴刻度标签(四边都有刻度标签)以及我的代码修剪图的顶部和左侧。任何帮助都将不胜感激。

在此处输入图片描述

答案1

Pgfplots 内置了对接收刻度标签的一个轴的支持。如果您希望在轴的两侧都有刻度标签,您可以在 sourceforge 上发布功能请求并等待其解决,或者为对面的站点生成第二个轴。

以下是采用第二轴的方法的解决方案:

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat = 1.7}

\begin{document}

\begin{tikzpicture}

    \pgfplotsset{
        set layers,% --- CF
        , x tick label style={
             /pgf/number format/.cd,
             fixed,
             fixed zerofill,
             precision=1,
             /tikz/.cd
            }
          , y tick label style={
             /pgf/number format/.cd,
             fixed,
             fixed zerofill,
             precision=1,
             /tikz/.cd
            },
    }

    \begin{axis}[
        %   title = {$x \exp(-x^2-y^2)$}
        , xlabel = $x$
            , ylabel = $y$
            , domain = -1:1
            , y domain = -1:1
        , enlargelimits
        , view = {0}{90}
        , extra description/.code={% --- CF
                \xdef\XMIN{\pgfkeysvalueof{/pgfplots/xmin}}
                \xdef\XMAX{\pgfkeysvalueof{/pgfplots/xmax}}
                \xdef\YMIN{\pgfkeysvalueof{/pgfplots/ymin}}
                \xdef\YMAX{\pgfkeysvalueof{/pgfplots/ymax}}
        },
        ]

       \addplot3[
            contour gnuplot={
                  number = 10
                 },
             thick
            ]
         {
            776.062 -50.812* x + 153.062 * y -76.812 *x *y
            };

    \end{axis}

    \begin{axis}[% --- CF
        xmin=\XMIN,
        xmax=\XMAX,
        ymin=\YMIN,
        ymax=\YMAX,
        ticklabel pos=right,
    ]
    \end{axis}

\end{tikzpicture}

\end{document}

在此处输入图片描述

如你所见,我使用 a 提取了常见选项\pgfplotsset并写道轴环境。此外,我自动记住了第一个轴的轴限值,并在第二个轴中复制了它们。请注意,该set layers语句同步了两个轴的图层,这非常方便,特别是如果您计划添加网格线。该解决方案目前绘制了两次轴路径(标签除外)。这可以通过axis lines语句来改进。

关于您关于“修剪”的问题:您能否在此处添加更多详细信息来说明您的意思?

相关内容