Tikz 命令\draw plot file{data/filename.dat}
通过存储在 filename.dat 中的坐标绘制一条线,该坐标包含在子文件夹数据中。是否有 Tikz 等效项,\graphicspath{{./data/}}
以便我不必data/
在每个绘图命令前面都写上?
这个帖子展示了如何使用 pgfplots 包来实现这一点,但我想知道是否有 Tikz 原生方法可以实现相同的功能。我真的不想加载整个 pgfplots 包,只是为了避免输入data/
。
以下是 MWE:
\begin{filecontents*}{data/somedata.dat}
1 2
3 4
5 6
\end{filecontents*}
\documentclass{standalone}
\usepackage{tikz, graphicx}
\graphicspath{{./data/}}
\begin{document}
\begin{tikzpicture}
\draw plot file{somedata.dat};
\end{tikzpicture}
\end{document}
答案1
事实证明,它\tikzset{every plot/.style={prefix=data/}}
仅适用于通过该操作使用 GNUplot 生成的图plot function
。要将前缀应用于文件中数据点的图,可以将以下代码添加到序言中。
\makeatletter
\def\tikz@plot@file ile#1{\def\tikz@plot@data{\pgfplotxyfile{\tikz@plot@prefix#1}}\tikz@@@plot}
\makeatother
\tikzset{every plot/.style={prefix=data/}}
这实际上只是将plot/prefix
存储在 中的密钥添加\tikz@plot@prefix
到传递给 的文件名中plot file
。可能有更好的方法来修补此问题,因为如果plot file
重新实现该操作,这将中断。但目前它可以工作。