我使用 tikz/pgf 绘制带有文件中数据的图。如果文件中至少有两列可供选择,这种方法就很好用。但是,我的文件非常大,只有一列。这应该代表 y 轴。x 轴应该只是条目/行/线的编号。我想知道为什么 gnuplot 可以轻松处理这个问题,但我无法使用 tikz/pgf 运行它。以下是一种不起作用的方法:
\documentclass{article}
\usepackage{pgf}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot plot file {lala};
\end{axis}
\end{tikzpicture}
\end{document}
这是另一个不起作用的方法:
\documentclass{article}
\usepackage{pgf}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot table[y index=0] {lala};
\end{axis}
\end{tikzpicture}
\end{document}
‘lala’ 看起来像这样:
10
9
3
2
这应该是一个简单的问题,但我发现的所有例子都至少有两列。
提前致谢,
o
/编辑:抱歉,我忘记了错误信息:
Runaway argument?
\else \expandafter \pgfplots@addplotimpl@file@readall \fi \fi \pgfplots@coord@s
tream@end \ETC.
! Paragraph ended before \pgfplots@addplotimpl@file@parsesingle was complete.
<to be read again>
\par
l.15
/edit2:在Jake发表评论后,我运行了以下示例:
\documentclass{article}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot table [x expr=\coordindex,y index=0] {lala.dat};
\end{axis}
\end{tikzpicture}
\end{document}
不幸的是,它给了我以下错误信息:
! Package pgfkeys Error: I do not know the key '/tikz/x expr' and I am going to
ignore it. Perhaps you misspelled it.
此人有同样的错误信息。显然是因为我的 Linux Mint 12(Ubuntu 11.10)上安装了旧的 texlive(2009)。我将尝试安装 texlive2010。
答案1
默认情况下,PGFPlots 假设 x 坐标的数据位于文件的第一列,y 坐标的数据位于第二列。如果要使用行号作为 x 坐标,则可以使用\addplot table [x expr=\coordindex, y index=0]
。请注意,您必须使用table
而不是file
:后者始终将第一列用作 x 坐标,将第二列用作 y 坐标。
\documentclass{article}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot table [x expr=\coordindex, y index=0] {
10
9
3
2
};
\end{axis}
\end{tikzpicture}
\end{document}