pgfplots:设置点元数据

pgfplots:设置点元数据

相关问题(其中包括):pgfplots 中的通用点标签

我希望将图表中点的标签设置为某些给定的字符串值(最好由先前的宏定义)。显然有一些涉及密钥的技巧point meta,但如果我理解正确的话,这些只能设置为数值。

以下返回标签“点编号 1”、“点编号 2”等,即文本表达式,但仅限于可以从宏中评估的表达式\coordindex

请注意,\newcommand{\mynames}扩展\mynames{1}为“第一”、 \mynames{2}“第二”等应该足够了,但我不知道如何编码。

\documentclass{standalone}
\usepackage{pgfplots}

%\pgfplotsset{compat = 1.14}
\begin{document}
    \begin{tikzpicture}
    \begin{axis}
    \newcommand{\samplepoints}{0,2,4}
    \addplot[samples at={\samplepoints},
    nodes near coords={\pgfmathtruncatemacro\nValue{\coordindex+1} Point number \nValue},
%   nodes near coords/.expanded={First, Second, Third}, % I wish this worked
    ] {x^2};
    \end{axis}
    \end{tikzpicture}
\end{document}

答案1

我不知道是否有解决方案。但是,为什么不直接创建内联表并\samplepoints直接为它们提供meta可以轻松绘制的值呢?

\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\begin{document}
    \begin{tikzpicture}
        \begin{axis}
            \addplot+ [
                point meta=explicit symbolic,
                nodes near coords,
            ] table [
                x=x,
                y expr=x^2,
                meta=meta,
            ] {
                % (use empty brackets for "no entry")
                x   meta
                0   First
                2   Second
                3   {}
                4   Third
            };
        \end{axis}
    \end{tikzpicture}
\end{document}

该图显示了上述代码的结果

相关内容