如何从日志文件嵌入折线图?

如何从日志文件嵌入折线图?

我有一个progress.txt格式的日志文件

<epoch> <space> <number> <space> <rest...>

以下是一个示例摘录:

$ cat progress.txt 
1375097557 40 523 3927 26884
1375162528 40 529 3939 26969
1375170979 44 630 4761 32536
1375171815 44 637 4822 32965
....

我想用 LaTeX 渲染折线图x 轴列-1y 轴列-2。 这列-1位于自 1970 年以来格式,但这并不重要,因为我不需要任何x 轴-标签。

那么图表将如下所示:

|               -----
|             --
|       ------  
|-------       
|
+-----------------------

如果足够简单,无需外部再处理,虽然这不是什么大问题,因为我无论如何都会用Makefile

扩展将会使用第 5 栏次要 y 轴,然后都用不同的颜色或样式绘制,即

|             °°-----   :
|       °°°°°°--        :
|      °------          :
|-----°-                :
|°°°°°                  :
+-----------------------+

我用

\usepackage{tikz}

无论如何,蒂克兹-解决方案是首选。

答案1

正如 Ignasi 所说,你可以使用 PGFPlots 来实现这一点:

\documentclass{article}
\usepackage{pgfplots}

\begin{filecontents}{progress.txt}
1375097557 40 523 3927 26884
1375162528 40 529 3939 26969
1375170979 44 630 4761 32536
1375171815 44 637 4822 32965
\end{filecontents}

\begin{document}
\begin{tikzpicture}
\pgfplotsset{
    scale only axis, % helps with aligning the two axes
    x filter/.code={
        \pgfmathparse{\pgfmathresult-1.375e9} % centering the data
    }
}

\begin{axis}[   % First curve, left axis
    axis y line*=left,
    xtick=\empty
]
\addplot [black] table {progress.txt};
\end{axis}

\begin{axis}[   % Second curve, right axis
    hide x axis,
    axis y line*=right,
    yticklabel style=red
]
\addplot [thick, red] table [y index=3] {progress.txt};
\end{axis}
\end{tikzpicture}
\end{document}

答案2

pgf图,这与蒂克兹axis,您可以通过在单个图中放置两个环境来实现:

代码

\documentclass{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{filecontents}

\begin{document}

\begin{filecontents}{myfile.txt}
097557 40 523 3927 26884
122528 40 529 3939 28969
140979 42 630 4761 30536
171815 44 637 4822 32965
\end{filecontents}

\begin{tikzpicture}
    \begin{axis}[xmajorticks=false,ytick pos=left]
        \addplot[jump mark left,blue] table[x index=0, y index=1] {myfile.txt};
    \end{axis}
    \begin{axis}
    [   xmajorticks=false,
        ytick pos=right,
        y tick label style={/pgf/number format/.cd, fixed, /tikz/.cd},
        scaled y ticks = false,
        ymin=25000,
        ymax=33000,
    ]
        \addplot[jump mark left,red] table[x index=0, y index=4] {myfile.txt};
    \end{axis}
\end{tikzpicture}

\end{document}

输出

在此处输入图片描述

相关内容