使用 pgfplotstable 检索文本时出现问题

使用 pgfplotstable 检索文本时出现问题

我试图从 pgf 绘图表中包含和获取文本,但没有成功。

当仅使用数字时,一切都会顺利进行:

\documentclass{standalone}
\usepackage{pgfplotstable}

\pgfplotstableread[col sep=comma]{
1
}\mydata

\begin{document}
\begin{tikzpicture}
\pgfplotstablegetelem{0}{0}\of\mydata
\node[draw=black] at (0,0) {\pgfplotsretval};
\end{tikzpicture}

\end{document}

但是,当将数字替换为字母或文本字符串时,如下所示

\documentclass{standalone}
\usepackage{pgfplotstable}

\pgfplotstableread[col sep=comma]{
a
}\mydata

\begin{document}
\begin{tikzpicture}
\pgfplotstablegetelem{0}{0}\of\mydata
\node[draw=black] at (0,0) {\pgfplotsretval};
\end{tikzpicture}

\end{document}

我收到以下错误消息:

! Package pgfplots Error: Sorry, could not retrieve column '0' from table '<inl
ine_table>'. Please check spelling (or introduce name aliases)..

See the pgfplots package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.12 \pgfplotstablegetelem{0}{0}\of\mydata

如何从我的 pgf 绘图表中包含和获取文本?我尝试过将文本括在"'中,但无济于事。

答案1

如果\pgfplotstableread在表格的第一行遇到非数字字符,它会假定此行包含列名。在这种情况下,它会认为您的表格只包含一列,称为a,没有任何数据,这就是为什么尝试检索列的第一个元素0不起作用的原因:没有名为的列,也没有第一个元素。您可以通过在选项中0设置来告诉 PGFPlots 所有内容都应被视为数据:header=false\pgfplotstableread

\documentclass{standalone}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{tikz}

\pgfplotstableread[col sep=comma, header=false]{
a
}\mydata

\begin{document}
\begin{tikzpicture}
\pgfplotstablegetelem{0}{0}\of\mydata
\node[draw=black] at (0,0) {\pgfplotsretval};
\end{tikzpicture}

\end{document}

相关内容