在轴上定位变量名称

在轴上定位变量名称

我正在寻找一个代码 - 可能在 {axis}[options] 内 -自动地输入变量名(例如,X, 和) 在每个轴的末尾。我知道手动执行此操作的方法,其中包括添加节点的位置,例如:

ylabel=$y$, y label style={at={(0,1)}},
xlabel=$x$, x label style={at={(1,0)}},

因为我倾向于处理许多图表,所以我想自动执行此操作。为了方便回答,我添加了一个包含以上几行的 MWE:

\documentclass{standalone}
\usepackage{tikz,pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
axis x line=bottom,
axis y line=left,
ylabel=$y$,
y label style={at={(0.18,1.05)}},
xlabel=$x$,
x label style={at={(1.05,0.13)}},
ytick=\empty,
xtick=\empty]
\addplot coordinates {(0,0) (1,1)};
\end{axis}
\end{tikzpicture}


\end{document}

答案1

labels at axis tips您可以像这样定义新样式:

\pgfplotsset{
    labels at axis tips/.style 2 args={
        compat=1.12,
        xlabel=#1,
        x label style={
            at={(current axis.right of origin)},
            anchor=west
        },
        ylabel=#2,
        y label style={
            at={(current axis.above origin)},
            anchor=west
        },
    },
    labels at axis tips/.default={$x$}{$y$}
}

然后,您可以调用labels at axis tips您的axis选项而不使用任何参数来放置默认标签,或者您可以调用labels at axis tips={xlabel}{ylabel}来使用不同的标签文本。

\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}

\pgfplotsset{
    labels at axis tips/.style 2 args={
        compat=1.12,
        xlabel=#1,
        x label style={
            at={(current axis.right of origin)},
            anchor=west
        },
        ylabel=#2,
        y label style={
            at={(current axis.above origin)},
            anchor=west
        },
    },
    labels at axis tips/.default={$x$}{$y$}
}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
labels at axis tips,
axis x line=bottom,
axis y line=left,
ytick=\empty,
xtick=\empty]
\addplot coordinates {(0,0) (1,1)};
\end{axis}
\end{tikzpicture}


\end{document}

相关内容