## 编译环境 操作系统 * [x ] Windows 7/8/10 * [ ] macOS * [ ] Linux `若需勾选,请把[ ]改成[x]` Tex发行版 * [ ] TexLive `年份` * [ ] MikTeX `版本号` * [ ] CTeX `若需勾选,请把[ ]改成[x]` ## 我的问题 我在学习用tikz中datavisualization时,用到了以下代码 ``` \documentclass{article} \usepackage{tikz,pgf} \usetikzlibrary{datavisualization} \begin{document} \begin{tikzpicture} \datavisualization [scientific axes={inner ticks}, x axis={ ticks={step=1, minor steps between steps=1}, length=6cm, label={123}, min value=-2,max value=2}, y axis={ticks={step=1,minor steps between steps=1}, length=4cm, min value=-2,max value=2}, visualize as scatter ] data[read from file=12.txt]; \end{tikzpicture} \end{document} ``` 其中12.txt见附件,只有三行的数据,用于测试学习的 现在我不确定的是,这个12.txt内数据的格式要怎么写才能被tikz正确读取 以上代码运行完得到的图这样的 ![](https://wenda.latexstudio.net/data/attach/200514/G1fy3xzq.png) 只有x轴的数据被正确读取,y轴数据不正确。我上传的12.txt文件是这样的 ![](https://wenda.latexstudio.net/data/attach/200514/yAHZVOKf.png) 我不确定哪里错了,请大家帮忙看看,谢谢了!

2 回答2

0
好像这个命令是有问题,直接把数据写入data吧
0
我也不明白这个问题的原因,我试了一下,把空格用作数据的分隔符号是有效的,因此可以变通处理。 一个办法是,使用选项 `/pgf/data/separator={ }`, 然后把数据文件中的逗号换成空格。 ``` data[separator={ },read from file=filename.txt]; ``` 如果想在数据文件中使用逗号的话,可以稍微修改一下 `table` 这个格式的定义。 在文件《pgfmoduledatavisualization.code.tex》中查找 ``` \pgfdeclaredataformat{table}...... ``` 这是 `table` 这个格式的定义。可以在文档正文的开头修改这个定义,只需要把 ```\catcode`\,=10``` 作为这个定义命令的第二个参数, ``` \pgfdeclaredataformat{table}{\catcode`\,=10}...... ``` 然后还要使用选项 `/pgf/data/separator={ }`。这个办法把逗号当作空格看待。 也可以用 pgfplots 宏包来画数据点。 我用的 PGF/TikZ 的版本是 3.1.5b。

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。