Pgfplot 轴标签的定位

Pgfplot 轴标签的定位

我正在尝试调整轴标签的位置,但遇到了一些麻烦:

\documentclass{article}
\usepackage{float}
\usepackage{pgfplots}
\usepackage{graphicx}
\begin{document}
\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{axis}[ 
    axis lines=middle,
    axis line style={->},
    x label style={at={(current axis.right of origin)},anchor=north, below=5mm},
    y label style={at={(current axis.above origin)},rotate=90,anchor=south east},
    xlabel={$u$ unemployment},
    ylabel={$\pi$ inflation}]
\addplot[black,samples=100,domain=0:1] {120*(1-x)^(1/3)-1};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}

可能是我不了解标签样式,但我希望 y 标签旋转并位于 y 轴的左侧(这样它就不会与刻度相交),并且我希望 x 标签位于 x 轴下方(这样它也不会碰到刻度)。另外,有没有办法将标签置于这些位置的中心?

答案1

您可以使用以下方式精确控制标签的位置

at={(axis description cs:0.5,-0.03)}

轴的起点是0,终点是1

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    axis lines=middle,
    axis line style={->},
    x label style={at={(axis description cs:0.5,-0.1)},anchor=north},
    y label style={at={(axis description cs:-0.1,.5)},rotate=90,anchor=south},
    xlabel={$u$ unemployment},
    ylabel={$\pi$ inflation}]
\addplot[black,samples=100,domain=0:1] {120*(1-x)^(1/3)-1};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

您可以使用xlabel near ticksylabel near ticks样式。这些将自动将标签放置在刻度线之外,而使用 Harish 的解决方案,您必须手动更改位置以容纳更大的刻度线标签。它们在章节中描述4.9.3 标签手册中,定义为

\pgfplotsset{
  /pgfplots/xlabel near ticks/.style={
     /pgfplots/every axis x label/.style={
        at={(ticklabel cs:0.5)},anchor=near ticklabel
     }
  },
  /pgfplots/ylabel near ticks/.style={
     /pgfplots/every axis y label/.style={
        at={(ticklabel cs:0.5)},rotate=90,anchor=near ticklabel}
     }
  }

代码示例:

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ 
    axis lines=middle,
    axis line style={->},
    ylabel near ticks,
    xlabel near ticks,
    xlabel={$u$ unemployment},
    ylabel={$\pi$ inflation}]
\addplot[black,samples=100,domain=0:1] {120*(1-x)^(1/3)-1};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容