我在一个 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}