相关问题(其中包括):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}