我正在尝试调整轴标签的位置,但遇到了一些麻烦:
\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 ticks
和ylabel 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}