我是 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];