是否可以让 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}