如何存储数据并将其用于 tikz 图?是否需要辅助文件?

如何存储数据并将其用于 tikz 图?是否需要辅助文件?

我有一个命令\mydatapoint,它接受两个参数 x 和 y。它以特定格式在我的文件中打印 x 和 y。

\newcommand{\mydatapoint}[2][]{ \textbf{#1} #2}

现在我想使用这些 x 和 y 的实例在最后打印一种摘要图。

对于情节,我发现这是一个很好的例子,说明如何做到这一点,但是必须读取数据文件才能获得要点。

数据文件只需要这种 x 和 y 数据的格式:

6 1
7 8
9 10

所以现在我希望我的命令\mydatapoint能够另外打印到一个辅助文件中,这样我就可以读取这些点,但在网上找不到任何关于如何写入辅助文件的信息。我以前从未在 Latex 中做过类似的事情,所以我不知道从哪里开始寻找信息。

任何正确的方向的指示都将受到赞赏。

另外,没有辅助文件也能做到这一点吗?

答案1

这将创建一个名为的文件points.txt,其中列出了你所有的点

\documentclass[]{article}

\usepackage{etoolbox}
\usepackage{pgfplots}

\newwrite\points
\newcommand\pointlist{}
\newcommand{\mydatapoint}[2]{\listadd{\pointlist}{#1,#2}\textbf{#1} #2}
\def\parsepoint#1,#2{(#1,#2)}

\AtEndDocument{%
  \immediate\openout\points=points.txt
  \renewcommand*{\do}[1]{\immediate\write\points{#1}}
  \dolistloop{\pointlist}
  \immediate\closeout\points
}



\begin{document}

This is my first data point \mydatapoint{1}{2}, and the second one is
\mydatapoint{3}{4}. Yest another point is \mydatapoint{5}{6}

% points up to this point will be in the plot
\renewcommand*{\do}[1]{%
  \addplot[mark = square*, blue] coordinates {%
    \parsepoint#1
  };
}
\begin{tikzpicture}
\begin{axis}
  \dolistloop{\pointlist}
\end{axis}
\end{tikzpicture}


This point will be included in the file, but not in the plot:
\mydatapoint{7}{8}

\end{document}

在此处输入图片描述

相关内容