将标签与 pgfplots 中的 ticklabel cs 中的 ticklabel 对齐

将标签与 pgfplots 中的 ticklabel cs 中的 ticklabel 对齐

我想将绘图的 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 标签和刻度标签没有相同的基线。

如果我通过 x 标签样式(MWE 中注释掉的移位)手动应用 y 偏移,我可以对齐刻度标签和轴标签的基线:

x 标签和刻度标签手动对齐。

但是,所需的 y 偏移会随着所选字体和其他各种绘图设置而变化。如何才能可靠地将轴标签与刻度标签垂直对齐?

提前感谢您的时间和建议。

答案1

我想我可以回答我的问题。这个问题或者更确切地说,这个答案让我认为“m”比“1”小得多,因此我需要\vphantom正确对齐它们。事实并非如此,因为两个字符都没有超出基线并且是锚定的south。但是,当将\vphantom-command应用于style/font-key时不起作用,我还启用了draw, line width = 1pt两种标签样式,并且所有内容都正确对齐。经过一些测试,我现在认为xlabeltick label它们的节点有不同的线宽,这就是它们没有垂直对齐的原因。将两个线宽都设置为0可以正确对齐所有内容。\vphantom如果某些东西延伸到基线以下,例如“g”,则可能需要这样做。

编辑:测试另一种字体,我发现我需要两者:设置线宽和应用\vphantom

相关内容