在节点处定位文本

在节点处定位文本

这应该是一个简单的问题,关于使用 pgfplots 用节点定位文本。

要制作带有文本的倾斜节点线,我会使用

\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{compat = newest}

\begin{document}

\begin{figure}
\begin{tikzpicture}
\begin{axis}[
    title = DPPH,
    xlabel = Applied Magnetic Field (I Guess) / G,
    xmax = 8,
    xmin = -8,
    ymax = 300,
    ymin = -300,
    ytick = \empty,
    xtick pos = left]

    \addplot[black, % Plotting the data
    no marks]
    table[x=xaxis,y=yaxis] {dpph2.dat};

    \node[coordinate,
    pin = {45:g factor = 1.96}
    ] at (0.2,224) {};

\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}

例如。

为了制作一个带有旋转文本的倾斜节点,我可以使用上、下、左、右或这些的组合将文本定位在节点线上,我会将\node上面的部分更改为

\node[coordinate,
    pin = {[rotate=45]right:g factor = 1.96}
    ] at (-0.3,250) {};

我的问题:如何abovebelowright第一的代码(不旋转文本和节点线)?我尝试了诸如45right、、45, right之类的方法[45]right,但我的猜测都没有奏效,而且我似乎无法在线找到示例。

编辑

以下是我上面输入的第一段代码

在此处输入图片描述

以下是我想要做的(只需移动文本相对于节点线的位置)

在此处输入图片描述 谢谢。

答案1

滥用 Jake 的回答中的代码我如何强制 TikZ 引脚角度?,我们可以为引脚定义一种新样式,使用一个标签(我们将其锚点设置为标记文本)和一个空引脚来绘制线条。您提供参数使其[anchor for label]angle:text类似于默认引脚用法。据推测,有某种方法可以根据角度自动选择锚点,但我的 TikZ-fu 还不够强大 :-) 请注意,%由于 TikZ 解释空格的方式,线条末尾的 是必需的。

\documentclass{standalone}

\usepackage{pgfplots}
\pgfplotsset{compat = newest}
\tikzset{
    aligned pin/.style args={[#1]#2:#3}{
        pin={[%
            inner sep=0pt,%
            label={[%
                append after command={%
                    node[%
                        inner sep=0pt,%
                        at=(\tikzlastnode.#2),%
                        anchor=#1,%
                    ]{#3}%
                }%
            ]center:{}}%
        ]#2:{}}%
    }
}
\begin{document}

\begin{tikzpicture}
\begin{axis}[
    title = DPPH,
    xlabel = Applied Magnetic Field (I Guess) / G,
    xmax = 8,
    xmin = -8,
    ymax = 300,
    ymin = -300,
    ytick = \empty,
    xtick pos = left
    ]

    \node[coordinate,
    aligned pin={[west]45:g factor=1.96},
    ] at (0,0) {};

\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容