TikZ 数据可视化无法读取文件

TikZ 数据可视化无法读取文件

我是 Tikz 的新手,希望使用它的数据可视化包,但是以下简单的测试文档无法构建;

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{datavisualization}

\begin{document}

\begin{tikzpicture} 
    \datavisualization [scientific axes, visualize as scatter]
    data [ read from file = kuboout18117.csv ];
\end{tikzpicture}
\end{document}

有错误;

Package pgfkeys Error: I do not know the key '/pgf/data/read from file'
and I am going to ignore it. Perhaps you misspelled it.

查看文档和现有帖子后,我很困惑为什么会发生这种情况!

导入文件的前几行是;

N , Gamma
2 , -0.00646673
3 , -0.00111146
4 , -3.1868e-05
5 , 0.000311116
6 , 0.000698315

我认为这似乎是无害的。任何帮助都将不胜感激!

答案1

好的,我重写了你的例子,让它在pgfplots并尝试设置一些基本设置,但我建议您研究一些示例以及pgfplots 手册

您的绘图最终得到的 LaTeX 代码如下:

\documentclass{article}
\usepackage{tikz,pgfplots}
\usepackage{filecontents}

\begin{filecontents*}{kuboout18117.csv}
N, Gamma
2, -0.00646673
3, -0.00111146
4, -3.1868e-05
5, 0.000311116
6, 0.000698315
\end{filecontents*}

\begin{document}

\begin{tikzpicture} 
    \begin{axis}[
        scaled y ticks=false,
        y tick label style={
            /pgf/number format/fixed,
            /pgf/number format/fixed zerofill,
            /pgf/number format/precision=3,
            },
        ymin=-0.008, ymax=0.002,
        xmin=0, xmax=8,
        ]
        \addplot[only marks, mark=*] table[x=N, y=Gamma, col sep=comma] {kuboout18117.csv};
    \end{axis}
\end{tikzpicture}
\end{document}

视觉效果:

在此处输入图片描述

答案2

这里有一些方法可以做到这一点Tikz' datavisualization

(1)发挥作用

您选择的可视化工具似乎存在于 xy 世界中。因此,要定义数据点,按照 pgfmanual 中所述,您需要将您的数据格式转换(解析)到这个 xy 世界。因此代码中的基本步骤format mine是:

    {                           % line code (assignments)
        \pgfkeyssetvalue{/data point/x}{#1}
        \pgfkeyssetvalue{/data point/y}{#2}
        \pgfdatapoint
    }
  • 将您的第一个值(每行)分配给/data point/x
  • 将第二个值(每行)分配给/data point/y

在您的数据规范中,您“告诉”使用这个解析器:

... data [read from file = kuboout18117.csv, format=mine];

但是,您还需要删除数据文件中的标题。最简单的方法是注释掉该行,或删除它,或者在开头指定一些 skip-header-code,如下所示此处使用 \def\ignoreheader{

kuboout18117.csv:

%N , Gamma
2 , -0.00646673
3 , -0.00111146
4 , -3.1868e-05
5 , 0.000311116
6 , 0.000698315

代码:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{datavisualization}

% ~~~ Defining format parser, see "81.6 Advanced: Defining New Formats" ~~~
\pgfdeclaredataformat{mine} % name
    {\catcode`\#=14\relax}      % needed to specify format
    {}                          % code at beginning
    {#1,#2}                     % line arguments (in file)
    {                           % line code (assignments)
        \pgfkeyssetvalue{/data point/x}{#1}
        \pgfkeyssetvalue{/data point/y}{#2}
        \pgfdatapoint
    }
    {}                          % dealing with empty lines
    {}                          % code at end

% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\begin{document}

 \begin{tikzpicture} 
    \datavisualization [
        scientific axes,
        visualize as scatter]
        data [read from file = kuboout18117.csv, format=mine];
 \end{tikzpicture}
\end{document}

结果

(2)变更

您还可以将数据中的标题更改为 xy-world:

%N , Gamma
x,y
2 , -0.00646673
3 , -0.00111146
4 , -3.1868e-05
5 , 0.000311116
6 , 0.000698315

并指定表格格式:

... data [read from file = kuboout18117.csv, format=table];

相关内容