我尝试指定x axis label
x 轴箭头下方的位置,就像xticklabels
。它对大多数图都适用。但是,当使用 修改 y 轴的范围时ymin=...
, 的坐标current axis.south east
会发生变化(我不喜欢),但此外, 的坐标位置会朝着意想不到的方向变化。
截断的图导致环境发生奇怪的修改,原因是什么current axis
?
下面提供了带有ymin=1.0
(ok)、ymin=0.8
(ok)、ymin=1.2
(不良结果)和ymin
未定义(奇怪结果)的图片,以及 MWE。
梅威瑟:
\documentclass{standalone}
\usepackage{tikz,pgfplots}
\usetikzlibrary{calc}
\pgfplotsset{compat=1.13}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis x line=bottom,
every axis x label/.style={at={($ (current axis.south east) + (0,-2.135pt)$)},red,anchor=base,yshift=-0.75em},
xticklabel style={anchor=base,yshift=-0.75em},
xlabel={$t$},
ymin=1.0, % <-- min of addplot
%ymin=1.2, % <-- random truncation
]
\addplot[black] coordinates {(0,2) (1,1) (2.2,2)};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
您可以使用xticklabel cs
来定位x axis label
:
every axis x label/.style={at={(xticklabel cs:1)},anchor=south,red},
typeset ticklabels with strut,
xlabel={$t$\strut},
里面和选项用于确保ticklabel和标签具有相同的高度和相同的深度\strut
。xlabel
typeset ticklabels with strut
代码:
\documentclass[tikz,margin=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\foreach \ymin in {.8,1,1.2}{
\begin{tikzpicture}
\begin{axis}[
axis x line=bottom,
every axis x label/.style={at={(xticklabel cs:1)},anchor=south,red},
typeset ticklabels with strut,
xlabel={$t$\strut},
ymin=\ymin
]
\addplot[black] coordinates {(0,2) (1,1) (2.2,2)};
\end{axis}
\end{tikzpicture}}
\end{document}
更新:
如果你真的想像x axis label
示例中那样手动移动绝对值,请使用
at={([yshift=-2.135pt]current axis.south east)}
或者
at={($ (current axis.south east) + (0pt,-2.135pt)$)}
请注意,您只能0pt
使用0
。
代码:
\documentclass[margin=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\usetikzlibrary{calc}
\begin{document}
\foreach \ymin in {.8,1,1.2}{
\begin{tikzpicture}
\begin{axis}[
axis x line=bottom,
every axis x label/.style={
at={($ (current axis.south east) + (0pt,-2.135pt)$)},
red,anchor=base,yshift=-0.75em
},
xticklabel style={anchor=base,yshift=-0.75em},
xlabel={$tg$},
ymin=\ymin
]
\addplot[black] coordinates {(0,2) (1,1) (2.2,2)};
\end{axis}
\end{tikzpicture}}
\end{document}