将使用 PGF 数学库计算的 TikZ 绘图点保存到 .table 文件?

将使用 PGF 数学库计算的 TikZ 绘图点保存到 .table 文件?

是否可以让 TikZ 保存并在后续编译运行中使用 PGF 数学库生成的绘图点?

以此方式绘制的此类函数的一个(简单)示例是:

\begin{tikzpicture}
  \draw plot (\x,{sin(2*pi*\x r)});
\end{tikzpicture}

这里,使用 PGF 数学库来计算sin(2*pi*\x r)。对于复杂的表达式,这非常耗时。我认为如果绘图点可用,那么可以节省这段时间,就像使用 gnuplot ' function' 图时的情况一样。然后(如果绘图被赋予id),由 gnuplot 生成的绘图点将保存到文件中.table,这样除非绘图参数发生变化,否则无需重新生成它们。

答案1

您可以使用\pgfplotstablenew命令pgfplotstable(随附pgfplots)创建一个包含您的绘图点的文件,并conditional在需要时创建一些文件。下一个示例在文件不存在时创建该文件。

\documentclass[border=2mm]{standalone}
\usepackage{pgfplots, pgfplotstable}

\begin{document}

\IfFileExists{myplot.dat}{}{
\pgfplotstablenew[
    create on use/plot1/.style={
        create col/expr={sin (2*pi*\pgfplotstablerow)}
    },
    columns={plot1}
]
{700}
\loadedtable
\pgfplotstablesave{\loadedtable}{myplot.dat}
}


  \begin{tikzpicture}
   \begin{axis}[
        line join=bevel,
        no markers,
        table/x expr={\coordindex},
        xmin=0,
        enlarge x limits=false,
        ymin=-1.5,
        ymax=1.5,
    ]
   \addplot[red] table [y expr={\thisrow{plot1}}] {myplot.dat};
\end{axis}

\end{tikzpicture}

\end{document} 

在此处输入图片描述

相关内容