或者:

或者:

我想包含以下数据,这些数据现在位于单独的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执行该操作的包。

相关内容