使用长格式(与宽格式相比)文本文件中的 pgfplots 进行绘图?

使用长格式(与宽格式相比)文本文件中的 pgfplots 进行绘图?

在统计编程语言中R,有两种不同的形式来表示数据。宽形式如下所示:

     subject time age weight height
1 John Smith    1  33     90   1.87
2 Mary Smith    1  NA     55   1.54

长表如下所示:

     subject variable value
1 John Smith     time  1.00
2 Mary Smith     time  1.00
3 John Smith      age 33.00
4 Mary Smith      age    NA
5 John Smith   weight 90.00
6 Mary Smith   weight 55.00
7 John Smith   height  1.87
8 Mary Smith   height  1.54

例子来源:Hadley Wickham 的。但请注意,我将 Mary 的体重改为 55,之前为 NA。

是否可以读取长格式的文本文件并绘制身高与体重的关系图?

\documentclass{standalone}

\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}
  % the following code doesn't work, but communicates the idea
  % of what I want to work
  \addplot [x variable=height,y variable=weight] {input.txt};
\end{axis}
\end{tikzpicture}
\end{document}

我之所以问这个问题是因为我想绘制我编写的计算机模拟程序的输出,而长格式输出比宽格式输出更容易。目前,我使用脚本R读取convert.Rin.txt格式的文本文件并将其转换为宽格式的文本文件out.txt,这pgf图in.txt可以读取。如果 pgfplots 能够以某种方式直接读取和处理而不需要我手动运行,那就更方便了convert.R

答案1

[根据我的评论转换而来]:

pgfplotstable不支持“长格式”。如果您想要一些独立于 R 的转换脚本,您可以考虑编写 TeX 脚本(基于pgfplotstable基本 TeX 编程)或 LUA 脚本。或者您可以R通过 shell escape 或通过以下方式调用脚本\addplot shell

相关内容