我想将绘图的 xlabel 放置在与 xticklabels 相同的基线上。为此,我将 xlabel style/at 键更改为 (ticklabel cs: 1),即 ticklabel 坐标系的最右侧位置。但是,标签不在同一基线上,但与刻度标签相比具有 y 偏移。请注意,我应用了 x 偏移,将字符“m”与刻度标签“1”叠加,以便可以轻松看到偏移。
代码:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel = {m},
xlabel style = {
at = { (ticklabel cs: 1) },
anchor = south,
xshift = -15pt,
%yshift = -0.2pt,
},
]
\addplot coordinates { (0,1) (1,0) };
\end{axis}
\end{tikzpicture}
\end{document}
由于我只能发布两个链接,因此我不会展示编译后的 pdf 图片。相反,我将展示叠加在刻度标签上的轴标签的放大图片。您可以轻松看到刻度标签的基线和轴标签之间存在偏移:
如果我通过 x 标签样式(MWE 中注释掉的移位)手动应用 y 偏移,我可以对齐刻度标签和轴标签的基线:
但是,所需的 y 偏移会随着所选字体和其他各种绘图设置而变化。如何才能可靠地将轴标签与刻度标签垂直对齐?
提前感谢您的时间和建议。
答案1
我想我可以回答我的问题。这个问题或者更确切地说,这个答案让我认为“m”比“1”小得多,因此我需要\vphantom
正确对齐它们。事实并非如此,因为两个字符都没有超出基线并且是锚定的south
。但是,当将\vphantom
-command应用于style/font
-key时不起作用,我还启用了draw, line width = 1pt
两种标签样式,并且所有内容都正确对齐。经过一些测试,我现在认为xlabel
和tick label
它们的节点有不同的线宽,这就是它们没有垂直对齐的原因。将两个线宽都设置为0可以正确对齐所有内容。\vphantom
如果某些东西延伸到基线以下,例如“g”,则可能需要这样做。
编辑:测试另一种字体,我发现我需要两者:设置线宽和应用\vphantom
。