读取没有 x 列的多列表格

读取没有 x 列的多列表格

我在一个 ascii 文件中有一个表(10000 行和 14 列),其中只包含 y 分量。

在我的例子中,x 的值是 1 到 10000。

是否可以告诉 Tikz 仅使用 y 分量从表中绘图?我知道x expr=\coordindex,但是我需要使用 addplot 分别导入每一列(在我的情况下是 14 次),并且我需要分别定义每一列的颜色。

是否有一个优雅的解决方案来读取表格,使用 y 值的位置作为 x 位置并为每列使用不同的颜色?

答案1

您可以使用 提取列数\pgfplotsgetcolsof{<table macro or file name>},然后使用 循环遍历列\pgfplotsinvokeforeach(类似于 TikZ 的\foreach):

\documentclass{article}
\usepackage{pgfplots,pgfplotstable}
\pgfplotstableread{
Y1  Y2  Y3  Y4
1   2   2   5
1   3   7   1
8   2   3   1
9   5   3   6
}\datatable

\begin{document}
\begin{tikzpicture}
\begin{axis}[ymin=0]
\pgfplotstablegetcolsof{\datatable}
\pgfmathsetmacro\numberofycols{\pgfplotsretval-1}
\pgfplotsinvokeforeach {0,...,\numberofycols}{
    \addplot table [x expr=\coordindex, y index=#1] {\datatable};
}
\end{axis}
\end{tikzpicture}
\end{document}

相关内容