我想包含以下数据,这些数据现在位于单独的doses.data
文件中
0 1
10 1
11 1
12 1
0 2
1 2
4.8 2
到我的TikZ
绘图中。现在我正在导入文件,但我想要我tikzpicture
环境中的实际数据:
\documentclass{minimal}
\usepackage{tikz}
%%%<
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{5pt}%
%%%>
\begin{document}
\begin{tikzpicture}[y=.2cm, x=.7cm,font=\rmfamily]
%axis
\draw (0,0) -- coordinate (x axis mid) (21,0);
%ticks
\foreach \x in {0,...,21}
\draw (\x,0pt) -- (\x,-3pt)
node[anchor=north] {\x};
%labels
\node[below=0.8cm] at (x axis mid) {Dose [Gy]};
\draw plot[mark=*, only marks, mark size=2]
file {doses.data};
\end{tikzpicture}
\end{document}
需要澄清的是,我不想包含file {doses.data};
,而是包含的内容doses.data
。执行此操作的正确语法是什么?
编辑:如果有更简单的解决方案pgfplots
,我会加入,但我更喜欢 TikZ,因为我想稍后添加一些东西。
答案1
您可以像这样嵌入:
\draw plot[mark=*, only marks, mark size=2] coordinates {(0,1) (10,1) (11,1) (12,1) (0,2) (1,2) (4.8,2)};
或者:
更好的方法,不需要修改坐标:
\documentclass{standalone}
\usepackage{tikz}
\usepackage[english]{babel}
\usepackage{filecontents}
\begin{filecontents}{doses.data}
# Header goes here
0 1
10 1
11 1
12 1
0 2
1 2
4.8 2
\end{filecontents}
\begin{document}
\begin{tikzpicture}[y=.2cm, x=.7cm,font=\rmfamily]
\draw (0,0) -- coordinate (x axis mid) (21,0);
\foreach \x in {0,...,21}
\draw (\x,0pt) -- (\x,-3pt)
node[anchor=north] {\x};
\node[below=0.8cm] at (x axis mid) {Dose [Gy]};
\draw plot[mark=*, only marks, mark size=2] file {doses.data};
\end{tikzpicture}
\end{document}
但此技术仍然使用文件。首次运行时由 LaTeX 自身创建的文件。标准版本的filecontents
环境没有在修改适当内容时更新文件,最好使用filecontents
执行该操作的包。