将坐标放置在 pgfplots 刻度处(类似于刻度标签)

将坐标放置在 pgfplots 刻度处(类似于刻度标签)

我根据 Pgfplots 手册 p324 中的示例构建了以下内容(typeset ticklabels with strut

它展示了命名 ticklabel 节点以供日后使用的可能性。

刻度线本身是否存在类似的事情(尽管它们可能不被定义为节点,而是路径?)

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
  \begin{axis}
    [
      xmax = 4,
      xtick={1,2.5,3},
      xticklabel style={draw, name=tickLabel \ticknum},
      xtick style = {red, very thick}, % --------------- how to mimic the above ?
      domain=0:4,
    ]
    \addplot[]{x};
  \end{axis}
  \draw[blue,very thick, <->] (tickLabel 0) -- (tickLabel 1);
\end{tikzpicture}
\end{document}

在此处输入图片描述

那么基本上,如何抓住非常粗的红色勾号,无论是在顶部还是在底部?

干杯,

答案1

我不清楚获取刻度标记的真正意图。也许,以下内容有帮助:

软件包pgfplots支持多种坐标系:

  • axis cs:该坐标系用于绘图内容,红色刻度的 x 坐标分别由 1、2.5 和 3 给出。

  • axis description cs可用于获取水平轴的 y 坐标:0, 1

  • 可以组合先前的坐标系来获取轴上的点,红色刻度从此处开始,例如:

    ({axis cs:2.5, 0} |- {axis description cs:0, 1})
    

    |-运算符取左侧坐标的水平分量,取右侧坐标的垂直分量。

  • 主刻度的长度可以保存在宏中\MajorTickLength

    \pgfkeysgetvalue{/pgfplots/major tick length}{\MajorTickLength}
    

下面的示例从底部刻度标记 3 的顶部到顶部刻度标记 1 的底部绘制一个箭头:

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
  \begin{axis}
    [
      xmax = 4,
      xtick={1,2.5,3},
      xticklabel style={draw, name=tickLabel \ticknum},
      xtick style = {red, very thick},
      domain=0:4,
    ]
    \addplot[]{x};
    \pgfkeysgetvalue{/pgfplots/major tick length}{\MajorTickLength}
    \path
      ({axis cs:3, 0} |- {axis description cs:0, 0})
      ++(0, \MajorTickLength) coordinate (tick bot 3)
      ({axis cs:1, 0} |- {axis description cs:0, 1})
      ++(0, -\MajorTickLength)
      coordinate (tick top 1)
    ;
  \end{axis}
  \draw[blue, very thick, <->] (tickLabel 0) -- (tickLabel 1);
  \draw[blue, very thick, <->] (tick bot 3) -- (tick top 1);
\end{tikzpicture}
\end{document}

结果

相关内容