提问于:
浏览数:
1935
## 编译环境
操作系统
* [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 回答
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。
你的回答
请登录后回答
你的回答将会帮助更多人,请务必认真回答问题。