考虑以下 MWE
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{
compat=1.12,
stdaxis/.style={
ylabel style={at={(ticklabel cs:1.06)},anchor=west,rotate=270},
}
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[stdaxis,ylabel=$f(x)$,xlabel=$x$]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
\end{document}
这正是我想要的。我的问题是,当我stdaxis
对另一张具有不同高度的图片使用相同的样式时,y 轴标签“f(x)”会变得太高或太低。为了避免这种情况,我想使用绝对定位并将样式更改为类似ylabel style={at={(ticklabel cs:1.0+5mm)},anchor=west,rotate=270}
这怎么可能?
答案1
您可以使用 TikZ 库calc
(cf.)通过坐标计算来实现这一点。PGF/TikZ 手册第 13.5 节):
\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{calc}
\pgfplotsset{
compat=1.12,
stdaxis/.style={
ylabel style={at={($(ticklabel cs:1.0)+(0mm,5mm)$)},anchor=west,rotate=270},
}
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[stdaxis,ylabel=$f(x)$,xlabel=$x$]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
使用yshift=5mm
后 rotate=270
:
代码:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{
compat=1.12,
stdaxis/.style={
ylabel style={at={(ticklabel cs:1)},
anchor=west,
rotate=270,
yshift=5mm% <-
},
}
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[stdaxis,ylabel=$f(x)$,xlabel=$x$]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
\bigskip
\begin{tikzpicture}
\begin{axis}[stdaxis,height=10cm,ylabel=$f(x)$,xlabel=$x$]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
\end{document}