tikz:绘制一列文件

tikz:绘制一列文件

我使用 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}

相关内容